Package | Description |
---|---|
quickfix.fix42 |
Message classes
|
quickfix.fix43 |
Message classes
|
quickfix.fix44 |
Message classes
|
quickfix.fix50 |
Message classes
|
quickfix.fix50.component |
Message component classes
|
quickfix.fix50sp1 |
Message classes
|
quickfix.fix50sp1.component |
Message component classes
|
quickfix.fix50sp2 |
Message classes
|
quickfix.fix50sp2.component |
Message component classes
|
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
boolean |
QuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MassQuote.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataSnapshotFullRefresh.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataIncrementalRefresh.NoMDEntries.isSet(QuoteEntryID field) |
void |
QuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MassQuote.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MarketDataSnapshotFullRefresh.NoMDEntries.set(QuoteEntryID value) |
void |
MarketDataIncrementalRefresh.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
boolean |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MassQuote.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataSnapshotFullRefresh.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataIncrementalRefresh.NoMDEntries.isSet(QuoteEntryID field) |
void |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MassQuote.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MarketDataSnapshotFullRefresh.NoMDEntries.set(QuoteEntryID value) |
void |
MarketDataIncrementalRefresh.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
boolean |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MassQuote.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataSnapshotFullRefresh.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataIncrementalRefresh.NoMDEntries.isSet(QuoteEntryID field) |
void |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MassQuote.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MarketDataSnapshotFullRefresh.NoMDEntries.set(QuoteEntryID value) |
void |
MarketDataIncrementalRefresh.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
boolean |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MassQuote.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataSnapshotFullRefresh.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataIncrementalRefresh.NoMDEntries.isSet(QuoteEntryID field) |
void |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MassQuote.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MarketDataSnapshotFullRefresh.NoMDEntries.set(QuoteEntryID value) |
void |
MarketDataIncrementalRefresh.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDIncGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDFullGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MDIncGrp.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MDFullGrp.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDIncGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDFullGrp.NoMDEntries.get(QuoteEntryID value) |
boolean |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotEntryGrp.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotEntryAckGrp.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MDIncGrp.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MDFullGrp.NoMDEntries.isSet(QuoteEntryID field) |
void |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotEntryGrp.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotEntryAckGrp.NoQuoteEntries.set(QuoteEntryID value) |
void |
MDIncGrp.NoMDEntries.set(QuoteEntryID value) |
void |
MDFullGrp.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
boolean |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MassQuote.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataSnapshotFullRefresh.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataIncrementalRefresh.NoMDEntries.isSet(QuoteEntryID field) |
void |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MassQuote.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MarketDataSnapshotFullRefresh.NoMDEntries.set(QuoteEntryID value) |
void |
MarketDataIncrementalRefresh.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDIncGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDFullGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MDIncGrp.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MDFullGrp.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDIncGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDFullGrp.NoMDEntries.get(QuoteEntryID value) |
boolean |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotEntryGrp.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotEntryAckGrp.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MDIncGrp.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MDFullGrp.NoMDEntries.isSet(QuoteEntryID field) |
void |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotEntryGrp.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotEntryAckGrp.NoQuoteEntries.set(QuoteEntryID value) |
void |
MDIncGrp.NoMDEntries.set(QuoteEntryID value) |
void |
MDFullGrp.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MassQuote.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataSnapshotFullRefresh.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MarketDataIncrementalRefresh.NoMDEntries.get(QuoteEntryID value) |
boolean |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MassQuote.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataSnapshotFullRefresh.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MarketDataIncrementalRefresh.NoMDEntries.isSet(QuoteEntryID field) |
void |
MassQuoteAcknowledgement.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MassQuote.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
MarketDataSnapshotFullRefresh.NoMDEntries.set(QuoteEntryID value) |
void |
MarketDataIncrementalRefresh.NoMDEntries.set(QuoteEntryID value) |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDIncGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDFullGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.getQuoteEntryID() |
QuoteEntryID |
MDIncGrp.NoMDEntries.getQuoteEntryID() |
QuoteEntryID |
MDFullGrp.NoMDEntries.getQuoteEntryID() |
Modifier and Type | Method and Description |
---|---|
QuoteEntryID |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
QuotEntryAckGrp.NoQuoteEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDIncGrp.NoMDEntries.get(QuoteEntryID value) |
QuoteEntryID |
MDFullGrp.NoMDEntries.get(QuoteEntryID value) |
boolean |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotEntryGrp.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
QuotEntryAckGrp.NoQuoteEntries.isSet(QuoteEntryID field) |
boolean |
MDIncGrp.NoMDEntries.isSet(QuoteEntryID field) |
boolean |
MDFullGrp.NoMDEntries.isSet(QuoteEntryID field) |
void |
QuotSetGrp.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotSetAckGrp.NoQuoteSets.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotEntryGrp.NoQuoteEntries.set(QuoteEntryID value) |
void |
QuotEntryAckGrp.NoQuoteEntries.set(QuoteEntryID value) |
void |
MDIncGrp.NoMDEntries.set(QuoteEntryID value) |
void |
MDFullGrp.NoMDEntries.set(QuoteEntryID value) |
Copyright © 2021. All rights reserved.