The main window font has to be set after main window construction
otherwise the menu bar font does not get set.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8077 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Slower decodes may mean that confirmation that a called station is
working another station arrives after start of Tx.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8071 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
We cannot assume that a "DE <dx-call> <anything>" is or is not for us
so we must continue calling and risk possible QRM. Calling split
avoids this issue.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8066 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
These attempt to ensure that a prefix is logged by the QSO partner
even if the compound call holder user Tx3 to tail-end a QSO.
The type 2 message generation options are largely overridden in
contest mode as only a few options make sense. Key is that Tx1 may use
only the base call when calling split is necessary, this requires that
both Tx3 and Tx4 have the full compound call otherwise the QSO partner
will never see the full call until it is possibly too late i.e. post
logging.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8065 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Message generation in contest mode now generates the correct Tx3 for
type 2 calls.
"<type-2> 73" is a free text so needed special handling in message
processing.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8064 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Generic message packing and unpacking routines now understand antipode
grid contest messages. These messages are now recognized as standard
messages in message response processing and dealt with appropriately
when contest mode is selected and applicable (currently FT8 and MSK144
only).
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8062 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Double-clicks on 73 messages fixed. Fixed issue with incorrect decode
being selected by double-click. Refined auto-sequencing sign off
handling, any 73 or rr73 free text near Rx or Tx frequency taken as a
73 from QSO partner but if a standard message then must be from QSO
partner.
Moved functionality from MainWindow to DecodedText class.
More efficient picking of messages from decoded text windows by
extracting the text block directly.
Tighten up use of RR73 and skipping Tx1, these are now disabled for
relevant compound calls where they would break the QSO exchange.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8056 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
73 messages from other QSOs on frequency should now be ignored rather
than being processed.
Also some long overdue refactoring and tidying of non-idiomatic C++
code in the logbook directory.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8047 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This means that "CQ DX", "CQ VT", etc., will be presistent until changed back.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8035 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Note that reverting to v1.7 will invalidate any saved working
frequencies from v1.8 but proceeding to v1.8 again will present a
reset set of working frequencies i.e. any user defined entries in v1.8
will be lost of a v1.8 -> v1.7 -> v1.8 transition is made.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8018 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Holding down the SHIFT key while tuning the rig should update the
nominal sked frequency, not holding done the SHIFT key should not
update the sked frequency. This is not yet perfect and sometimes a
change to the nominal sked frequency can get through but it is a rare
as yet unfound race condition.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7992 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Call first combined with "Lock Tx=Rx" (why would anyone consider doing
that!) should continue on the Tx frequency of the station being
worked and not be switched another calling station's frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7972 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
FT8 auto-stop will only react to messages within +/- 50Hz of our Tx
frequency.
Auto-sequence on "DE ..." and free text 73 messages will respond if
they are within 25Hz of our Tx or Rx frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7970 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Bad idea, need to find a better way to extend grids to 6-digits from
CALL3.TXT.
This reverts commit r7959
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7965 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Required to pick best AP masks in FT8 decoder
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7958 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The UDP decode and reply message have been augmented with a boolean
flag denoting a low confidence decode when set. Existing clients can
safely use the reply message without passing the flag as the default
value will still action messages that have high confidence. If low
confidence decodes are to be passed back via the reply message then
the low confidence flag must be included and correctly set to match
the original decode.
See NetworkMessage.hpp for message fields and meanings.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7957 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Enable or disable by double-clicking the Tx4 button or the adjacent
radio button. Is auto disabled by a band change as it is expected that
the user reassess the conditions to see if message repetitions are
unlikely to be needed.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7950 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Enable and disable by double-clicking the Tx1 button or the adjacent
radio button. Tx1 message shows grayed out when the Tx1 message is
elided.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7949 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Allow any message to start a QSO so long as we are not in an
auto-reply QSO.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7943 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
moves the Rx frequency to theirs, this facilitates calling a station
who is busy and may have many callers on their frequency. Updated the
corresponding mouse shortcuts help text.
Allow for times with seconds when parsing fast mode and FT8 decodes.
Exclude the RR73 grid square from and grid validation or matching, it
is not a grid square any more as far as WSJT-X is concerned, it is an
RRR substitute.
Add a simple state machine for QSO progress such that replies and
auto-sequencing can be better controlled.
Get compound callsign edge cases working again and allow QSOs from and
to compound callsign holders working in as many situations as possible
including auto-sequencing and FT8 auto-reply mode. This does mean
that a "DE W6/K1ABC DM93" type message close to a callers Tx or Rx
frequency will be taken as a reply to a CQ call despite it not being
explicitly addressed back to the CQ caller. Compound callsigns should
work in MSK144 contest mode also as well as in short code modes with
some minor restrictions (short codes will not be used where
configuration demands that a message be used to send a full compound
callsign).
Auto sequencing has been made generic such that it can be used for
more than one mode if desired.
Allow the use of free text messages to sign off in auto sequenced QSOs
without the message being overwritten by the sequencer. Double click
actions have been added to the Tx5 radio and push buttons to revert
back to the default standard 73 message.
Make DisplayText class interface more idiomatic C++ and simplify a
bit.
Fixed some displayed widget arrangements for different modes and
sub-modes so that they are consistent when starting up and when
switching mode or sub-mode.
This is a big change which has been extensively tested but no doubt
there will also be some new defects introduced.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7939 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. "Call 1st" label turns red when armed to respond to a caller.
3. Suppress some recognizable false decodes, send them to cumulative file
"data_dir/false_decodes.txt".
4. Reduce sleep delay in decoder() to 10 ms.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7928 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Thanks to Mike, W9MDB, for this contribution.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7921 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Avoid trying to set bogus uninitialized frequency values.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7897 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Now equlization tools as it covers both amplitude and phase
equalization.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7875 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This change also adds seconds resolution to log files and log QSO
fields.
This change makes the log QSO dialog more layout friendly and uses a
QDateTimeEdit for QSO start and end times.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7827 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Working frequencies can be for all regions or for individual IARU
regions. This allows each mode band tuple to have one or more working
frequencies which can include local ones only offered when the user
configures their IARU region.
Change working frequency default suggestions to better fit in
FT8. General rule is FT8 is at JT65 -2kHz except where that is not
possible e.g. where that would fall into a segment not allocated for
narrow band data modes. For tight bands like top band sqeeze existing
JT65 and JT allocations to allow space for FT8.
NOTE: this change changes the WSPR frequency on 80m to allow access to
JA stations that currently have no allocation where it was placed.
ALSO NOTE: the JT65 and JT9 frequencies for 80m move down 6 kHz, again
to accommodate region 3 users. Other appliactions not within our
control should be asked to move in step when 1.8.0 is released.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7810 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
When using split operating and/or rig mode setting there is a delay
before PTT is asserted while the CAT commands are processed. There
will even be a small delay if CAT is only used for PTT. This change
waits for these commands to be completed before starting the user Tx
delay specified in the settings.
There is a notable exception to this in that DX Lab Suite Commander
does not give us a way of knowing when CAT commands have actually been
completed. This combined with the way that Commander spaces CAT
commands, rather than being paced by the rig's CAT responses, means
that delays of more than 1 second are likely. As most rigs suffer some
sort of ALC overshoot when PTT is asserted with audio already present,
it is strongly recommended not to use the DX Lab Suite Commander as a
rig control proxy if your rig may suffer ALC overshoot and you use an
external PA. Please note that using a typical RF power meter to detect
ALC overshoots is unwise as they are rarely fast enough. It is
probably wise to assume that all rigs suffer ALC overshoot since it is
very difficult to design an ALC loop that avoids it.
This change also increases the range of the "Settings->Advanced->Tx
Delay" spin box to 0s up to 2s.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7756 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
For FT8 mode:
1. Open LU 13 in the proper way.
2. Disable diagnostic LU 51.
3. Add keyboard shortcuts CTRL+Plus, CTRL-Minus, to adjust audio Tx frequency
in even 50 Hz steps.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7749 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This feature is of limited benefit and causes unexpected behaviour on
rigs with lower than 1Hz resolution. Removed for simplicity.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7743 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. ft8d is now a bare-bones multi-decoder.
3. wsjt-x now includes the bare-bones multi-decoder for FT8.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7729 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
These were using a hijacked custom spin box that was designed only for
letters i.e. submodes. Now there are two new custom spin boxes.
HistedSpinBox:- can be set with a list of integer values which the
step up and down will follow. Optionally limits the maximum and
minimum value to the upper and lower bounds of the values set. Note
that intermediate values are still valid.
RestrictedSpinBox:- more like a combo box because the provided values
are the only ones that can be set.
HintedSpinBox is used for the frequency tolerance and
RestrictedSpinBox is used for T/R period.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7698 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Until the advanced band hopping scheduler is upgraded to work with T/R
periods other than 2 minutes this scheduler uses a strictly random
scheduler, except that Tx percentages less than 40 defer Tx periods
that would otherwise be consecutive.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7687 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
More to come on this but should get Tab 2 basically working with
MSK144 running from a calling frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7675 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The wide graph class handles 60m band behaviour of the minimum decoded
JT9 DF internally without leaking implementation details.
On 60m the lowest JT9 DF is always zero and the spin box to set it is
disabled. This reflects that 60m only has narrow channels and JT9
signals should share the same dial frequency as JT65 signals.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7668 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Ctrl+M (Cmd+M) was being used as a menu shortcut and in key press
event handlers which leads to inconsistent behaviour on some
platforms. Removed menu action shortcut.
Also tidied up handling of the hide controls menu action by making it
a checkable action and using its checked state to store the control
hiding state.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7608 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Level meter range increased to 0-90 dB.
2. Level meter reading is independent of slider setting.
3. For a trial period: thermometer bar goes red if a 16-bit sample
is within 5 dB A/D limit.
4. Slider can be used to adjust levels sent to waterfall.
5. Tx6 message is selected on program startup.
Thanks to W9MDB for most of this code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7596 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
"JT65 nnnn JT9" blue line to 0 Hz. Now it also moves the spinner to
0 Hz, as it should have done. Subsequent QSY to another band will reset
the blue line and spinner to where they had been, before the QSY to 60 m.
Thanks to W9MDB for this patch.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7595 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Use a header format for polynomial coefficients that includes the
valid X range in scaled terms and a count of the number of
coefficients.
Use double precision consistently for polynomial coefficients. This
includes formatting with sufficient DPs when writing to files.
Many changes to the equalization plots, more to come.
Add error handling for reading coefficient, plot and filter
files. This includes being backward compatible for old format
refspec.dat files with no header.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7578 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This builds on the static phase compensation in the MSK144 decoder and
the phase analysis and polynomial fitting capabilities also in teh
MSK144 decoder, by allowing captured data to be selected for phase
equalization from the WSJT-X UI.
Reads captured phase compensation curve estimate files containing
fitted polynomial coefficients and measured phase data from MSK144
receptions. Intent is to select a compensation curve that is from a
known transmitter like an SDR which have good phase linearity. Phase
plots and compensation polynomials may be viewed and compared with the
current compensation polynomial. A suitable polynomial can be applied
to be use in all further decoding of MSK144 signals.
Plots of the currently selected polynomial and its modified higher
order terms polynomial which is actually used in equalization (this
plot may be dropped - it is just for kicks at the moment). When a
captured phase analysis file is loaded plots of the measured phase and
the proposed best fit polynomial are shown.
Basic maintenance is also included allowing clearing and loading
captured plots and an option to revert to a flat no equalization
curve.
More to come on this as amplitude equalization is also possible, this
will probably be similar, maybe even plotted on the same graph with
dual axes for phase and amplitude. Amplitude correction from a
measured reference spectrum could be viewed and selected for
equalization for all modes. TBC...
This change also introduces the QCustomPlot 3rd party
widget. Currently this is statically linked from a qcp library built
by the WSJT-X CMake script. This will probably be migrated to a shared
object (DLL) build as a CMake external project, once some CMake script
re-factoring has been completed, which is more in line with the
QCustomPlot author's intentions. This will allow efficient reuse in
other tools shipped with WSJT-X.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7570 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Allow band drop down list to be used to select FreqCal frequencies,
also resets position in automatic cycle. Tidy up some unnecessary
code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7486 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Menu item *Tools -> Execute frequency calibration cycle* is renamed and checkable. Cycling does not start until checked.
2. Ctrl+F10 now allows you to cycle manually through the list of calibration frequencies.
3. Calibration sequence lengths can be set to 5, 10, 15, or 30 s with the sbTR spinBox.
Also: don't set sbTR index to 0 when entering a slow mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7485 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Rx DF is now "real-time" adjusting the rig in concert with the
monitored DF.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7465 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Some default time signals have been added to the frequency list so a
base set can be obtained by resetting the frequency list,
alternatively they can be added ad hoc in the normal fashion.
FreqCal mode behavior is to select the lowest cal frequency upon
entering FreqCal mode and cycling through each cal frequency
repeatedly. Ctrl+F10 jumps directly to the next higher frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7463 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Deepest decode level should be selected automatically when switching
to JT4 or JT65 when VHF & up mode is on and either of averaging or
deep search are enabled.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7456 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
only when 73 is sent. Revert to that well-established behavior.
2. Correct the logic that detects short-form RO, RRR, and 73 messages in
JT65 VHF modes and color-highlights the Tx message box.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7442 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. Don't update the "Last Tx" message until current transmission is complete.
These suggestions from W9MDB.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7429 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. Send emedelay (now 0 or 2.5) to QRA64 decoder.
3. Tweaks to sync64, making it better for QRA64A.
4. Mainwindow MessageBox if it attempts to open a file with wrong format.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7424 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Sub mode and fast mode flag are added to the UDP Status message and
Status messages after appropriate UI changes. MSK144 decodes produce
UDP Decode messages. Fast JT9 messages are treated similarly.
Currently ISCAT decodes are not posted as UDP Decode messages as they
do not fit well with the model.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7389 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The class NetworkAccessManager sub-classes QNetworkAccessManager
adding a message box to ask the user if SSL errors may be
ignored. Ignored errors are ignored in future server replies so that
the user is not asked about he same peer certificate chain repeatedly.
The cache is currently per process only and not persistent.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7361 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Updated UDP examples to show the version and revision information
received from clients.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7358 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Use the new DX Lab Suite Commander command option to stop Commander
trying to change the rig Tx VFO mode when we don't want to. Requires a
recent DX Lab Suite Commander version.
All rig controllers can now detect 20Hz resolution rigs, still needs
2Hz resolution code which will be needed for the FT-891 AFAIK.
Enhance the HRD interface to be able to use the alternative PTT
command as found on most Kenwood rigs for audio source selection. Fix
Icom data mode selection issues.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7357 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
CQ NNN ... and CQ aa ... are coalesced to CQ_NNN ... and CQ_aa ... so
as to keep the word count and indexes consistent with plain CQ ..., DE
... and QRZ ... standard message forms when parsing messages.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7356 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
... rather than the working frequency.
Users set their working frequency and specify a calling frequency as a
kHz offset into the current Rx MHz with the main window spin box.
Calling CQ on the specified calling frequency is enabled by checking
the associated option.
Also enhanced the auto sequencing to handle short code 73 messages
correctly.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7339 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
One reason for inactivity is that a calibration adjustment has been
made.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7320 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Also relax entry validation so it is easier to enter standard message
forms longer than 13 characters into message entry line edits.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7294 ab8295b8-cf94-4d9e-aec4-7959e3be5d79