@gojinko/cli 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commands/find-destination.js +1 -1
- package/dist/commands/get-booking.d.ts +3 -0
- package/dist/commands/get-booking.d.ts.map +1 -0
- package/dist/commands/get-booking.js +33 -0
- package/dist/commands/get-booking.js.map +1 -0
- package/dist/commands/hotel-search.d.ts.map +1 -1
- package/dist/commands/hotel-search.js +73 -12
- package/dist/commands/hotel-search.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/lookup-booking.d.ts +0 -3
- package/dist/commands/lookup-booking.d.ts.map +0 -1
- package/dist/commands/lookup-booking.js +0 -16
- package/dist/commands/lookup-booking.js.map +0 -1
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ jinko auth logout # Clear stored credentials
|
|
|
66
66
|
|
|
67
67
|
| Command | Description |
|
|
68
68
|
|---|---|
|
|
69
|
-
| `
|
|
69
|
+
| `get-booking` | Retrieve a booking by reference (booking ref + last-name guest-auth). No subcommands. (Previously `lookup-booking`, which is kept as a hidden deprecated alias.) |
|
|
70
70
|
| `refund check` | Check refund eligibility for a booking |
|
|
71
71
|
| `refund commit` | Initiate a refund for a booking |
|
|
72
72
|
| `refund status` | Check the status of a previously committed refund |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { withClient, output } from './shared.js';
|
|
2
2
|
const DESCRIPTION = 'Discover travel destinations accessible from your departure airports. ' +
|
|
3
3
|
'Surface inspiration when a user knows where they want to leave from but not where they want to go. ' +
|
|
4
|
-
|
|
4
|
+
"Typical prompts include 'cheap beach getaways from New York' or 'weekend trips out of London under €200'. " +
|
|
5
5
|
'Results come back ranked by lowest available fare so the user can compare options before committing to a route. ' +
|
|
6
6
|
'Same call as `POST /api/v1/flights/destination-search` — every CLI flag maps 1:1 to a JSON field.';
|
|
7
7
|
function parseDateRange(raw) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-booking.d.ts","sourceRoot":"","sources":["../../src/commands/get-booking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBhE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { withClient, output } from './shared.js';
|
|
2
|
+
// Shared commander action used by both the canonical `get-booking` command
|
|
3
|
+
// and its deprecated `lookup-booking` alias (JIN-663).
|
|
4
|
+
const action = withClient(async (client, globals, opts) => {
|
|
5
|
+
const response = await client.getBooking({
|
|
6
|
+
booking_ref: opts.ref,
|
|
7
|
+
last_name: opts.lastName,
|
|
8
|
+
});
|
|
9
|
+
output(response, { format: globals.format });
|
|
10
|
+
});
|
|
11
|
+
export function registerGetBookingCommand(program) {
|
|
12
|
+
program
|
|
13
|
+
.command('get-booking')
|
|
14
|
+
.description('Retrieve a booking by Jinko reference + last name (guest access).')
|
|
15
|
+
.requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
|
|
16
|
+
.requiredOption('--last-name <name>', 'Last name of the primary traveler')
|
|
17
|
+
.action(action);
|
|
18
|
+
// Deprecated alias (JIN-663) — hidden from `--help`, emits a one-line
|
|
19
|
+
// deprecation warning to stderr, then runs the same action. Remove once
|
|
20
|
+
// external scripts have migrated to `jinko get-booking`.
|
|
21
|
+
program
|
|
22
|
+
.command('lookup-booking', { hidden: true })
|
|
23
|
+
.description('[DEPRECATED] Alias for `get-booking`. Use `get-booking` instead.')
|
|
24
|
+
.requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
|
|
25
|
+
.requiredOption('--last-name <name>', 'Last name of the primary traveler')
|
|
26
|
+
.action(function deprecatedLookupBookingAction(...args) {
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
console.error('[DEPRECATED] `jinko lookup-booking` is renamed to `jinko get-booking`. ' +
|
|
29
|
+
'The old name will be removed in a future release.');
|
|
30
|
+
return action.apply(this, args);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=get-booking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-booking.js","sourceRoot":"","sources":["../../src/commands/get-booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;QACvC,WAAW,EAAE,IAAI,CAAC,GAAG;QACrB,SAAS,EAAE,IAAI,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,mEAAmE,CAAC;SAChF,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACzE,MAAM,CAAC,MAAM,CAAC,CAAC;IAElB,sEAAsE;IACtE,wEAAwE;IACxE,yDAAyD;IACzD,OAAO;SACJ,OAAO,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC3C,WAAW,CAAC,kEAAkE,CAAC;SAC/E,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACzE,MAAM,CAAC,SAAS,6BAA6B,CAAgB,GAAG,IAAe;QAC9E,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,yEAAyE;YACvE,mDAAmD,CACtD,CAAC;QACF,OAAQ,MAA6C,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotel-search.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"hotel-search.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoEpC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6GjE"}
|
|
@@ -1,16 +1,54 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
1
2
|
import { withClient, output } from './shared.js';
|
|
3
|
+
function isLowConfidenceError(body) {
|
|
4
|
+
if (!body || typeof body !== 'object')
|
|
5
|
+
return false;
|
|
6
|
+
const e = body.error;
|
|
7
|
+
return Boolean(e && typeof e === 'object' && e.code === 'HOTEL_NAME_LOW_CONFIDENCE');
|
|
8
|
+
}
|
|
9
|
+
function formatLowConfidenceError(body, format) {
|
|
10
|
+
if (format === 'json') {
|
|
11
|
+
// Agents and scripts parse the full structured body — emit it as-is.
|
|
12
|
+
console.error(JSON.stringify(body, null, 2));
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const { message, top_candidates, suggested_retry } = body.error;
|
|
16
|
+
console.error(chalk.red(`Error: ${message}`));
|
|
17
|
+
console.error('');
|
|
18
|
+
if (top_candidates.length > 0) {
|
|
19
|
+
console.error(chalk.bold('Top candidates:'));
|
|
20
|
+
for (const c of top_candidates) {
|
|
21
|
+
const score = (c.score * 100).toFixed(0).padStart(3, ' ');
|
|
22
|
+
const city = c.city ? chalk.dim(` (${c.city})`) : '';
|
|
23
|
+
console.error(` ${chalk.dim(score + '%')} ${c.hotel_id} ${c.name}${city}`);
|
|
24
|
+
}
|
|
25
|
+
console.error('');
|
|
26
|
+
}
|
|
27
|
+
if (suggested_retry) {
|
|
28
|
+
const dest = JSON.stringify(suggested_retry.destination);
|
|
29
|
+
console.error(chalk.bold('Suggested retry:'));
|
|
30
|
+
if (suggested_retry.rationale) {
|
|
31
|
+
console.error(` ${chalk.dim(suggested_retry.rationale)}`);
|
|
32
|
+
}
|
|
33
|
+
console.error(` ${chalk.cyan('destination=')}${dest}`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.error(chalk.dim('No suggested_retry — provide --city and --country to narrow the lookup, or try a different name.'));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
2
39
|
export function registerHotelSearchCommand(program) {
|
|
3
40
|
program
|
|
4
41
|
.command('hotel-search')
|
|
5
42
|
.description('Search live hotel inventory and rates by destination, dates, and occupancy.')
|
|
6
|
-
.option('--query <text>', 'free-text destination (city, region, POI)')
|
|
7
|
-
.option('--city <name>', 'city name (e.g. "Paris")')
|
|
8
|
-
.option('--country <code>', 'ISO 3166-1 alpha-2 country code (e.g. fr)')
|
|
9
|
-
.option('--lat <latitude>', 'latitude for geo-radius search')
|
|
10
|
-
.option('--lng <longitude>', 'longitude for geo-radius search')
|
|
11
|
-
.option('--radius <km>', 'search radius in km (default 5, max 50)')
|
|
12
|
-
.option('--place-id <id>', 'Google Places ID or upstream place identifier')
|
|
13
|
-
.option('--hotel-ids <ids...>', 're-shop specific hotel IDs')
|
|
43
|
+
.option('--query <text>', 'free-text destination (city, region, POI) — Mode B')
|
|
44
|
+
.option('--city <name>', 'city name (e.g. "Paris") — Mode B destination, or Mode A lookup scope when combined with --hotel-name')
|
|
45
|
+
.option('--country <code>', 'ISO 3166-1 alpha-2 country code (e.g. fr) — Mode B destination, or Mode A lookup scope when combined with --hotel-name')
|
|
46
|
+
.option('--lat <latitude>', 'latitude for geo-radius search — Mode B')
|
|
47
|
+
.option('--lng <longitude>', 'longitude for geo-radius search — Mode B')
|
|
48
|
+
.option('--radius <km>', 'search radius in km (default 5, max 50) — Mode B')
|
|
49
|
+
.option('--place-id <id>', 'Google Places ID or upstream place identifier — Mode B')
|
|
50
|
+
.option('--hotel-ids <ids...>', 're-shop specific hotel IDs — Mode A')
|
|
51
|
+
.option('--hotel-name <name>', 'look up a specific hotel by name — Mode A. Pair with --city and --country to narrow the lookup scope.')
|
|
14
52
|
.option('--checkin <date>', 'check-in date (YYYY-MM-DD)', undefined)
|
|
15
53
|
.option('--checkout <date>', 'check-out date (YYYY-MM-DD)', undefined)
|
|
16
54
|
.option('--adults <n>', 'number of adults (shorthand)', '2')
|
|
@@ -28,11 +66,23 @@ export function registerHotelSearchCommand(program) {
|
|
|
28
66
|
console.error('Error: --checkin and --checkout are required.');
|
|
29
67
|
process.exit(3);
|
|
30
68
|
}
|
|
31
|
-
const hasDestination = opts.query || opts.city || opts.lat || opts.placeId || opts.hotelIds;
|
|
69
|
+
const hasDestination = opts.query || opts.city || opts.lat || opts.placeId || opts.hotelIds || opts.hotelName;
|
|
32
70
|
if (!hasDestination) {
|
|
33
|
-
console.error('Error: provide a destination
|
|
71
|
+
console.error('Error: provide a destination — Mode A: --hotel-name (optionally + --city/--country) or --hotel-ids; ' +
|
|
72
|
+
'Mode B: --query, --city, --lat+--lng, or --place-id.');
|
|
34
73
|
process.exit(3);
|
|
35
74
|
}
|
|
75
|
+
// Mode A signal: --hotel-name or --hotel-ids. In Mode A the server
|
|
76
|
+
// ignores filters; warn the user locally so they know what's going to
|
|
77
|
+
// happen (server-side behavior is lenient-with-warnings for now per
|
|
78
|
+
// JIN-639 Phase 4 plan; may become a 422 in a future version).
|
|
79
|
+
const isModeA = Boolean(opts.hotelName || opts.hotelIds);
|
|
80
|
+
const hasFilters = Boolean(opts.minRating || opts.stars || opts.maxStars || opts.minReviews || opts.maxResults);
|
|
81
|
+
if (isModeA && hasFilters) {
|
|
82
|
+
console.warn('Warning: filters (--min-rating / --stars / --max-stars / --min-reviews / --max-results) ' +
|
|
83
|
+
'are ignored when --hotel-name or --hotel-ids is set (rate-lookup mode). ' +
|
|
84
|
+
'The server will return a warnings entry in the response.');
|
|
85
|
+
}
|
|
36
86
|
const body = {
|
|
37
87
|
checkin: opts.checkin,
|
|
38
88
|
checkout: opts.checkout,
|
|
@@ -55,6 +105,8 @@ export function registerHotelSearchCommand(program) {
|
|
|
55
105
|
body.place_id = opts.placeId;
|
|
56
106
|
if (opts.hotelIds)
|
|
57
107
|
body.hotel_ids = opts.hotelIds;
|
|
108
|
+
if (opts.hotelName)
|
|
109
|
+
body.hotel_name = opts.hotelName;
|
|
58
110
|
// Occupancy shorthand
|
|
59
111
|
if (opts.children)
|
|
60
112
|
body.children = opts.children.map(Number);
|
|
@@ -65,7 +117,7 @@ export function registerHotelSearchCommand(program) {
|
|
|
65
117
|
body.currency = opts.currency;
|
|
66
118
|
if (opts.nationality)
|
|
67
119
|
body.guest_nationality = opts.nationality;
|
|
68
|
-
// Filters
|
|
120
|
+
// Filters (Mode B only — Mode A warned above)
|
|
69
121
|
if (opts.minRating)
|
|
70
122
|
body.min_rating = Number(opts.minRating);
|
|
71
123
|
if (opts.stars)
|
|
@@ -79,7 +131,16 @@ export function registerHotelSearchCommand(program) {
|
|
|
79
131
|
const response = await client.raw.POST('/api/v1/hotels/shop', {
|
|
80
132
|
body,
|
|
81
133
|
});
|
|
82
|
-
|
|
134
|
+
// 422 HOTEL_NAME_LOW_CONFIDENCE is actionable, not fatal — pretty-print
|
|
135
|
+
// top_candidates and suggested_retry so the dev can see what the lookup
|
|
136
|
+
// actually matched, then exit non-zero so scripts notice. All other
|
|
137
|
+
// non-2xx responses fall through to withClient's standard error path.
|
|
138
|
+
const apiResp = response;
|
|
139
|
+
if (apiResp.response?.status === 422 && isLowConfidenceError(apiResp.error)) {
|
|
140
|
+
formatLowConfidenceError(apiResp.error, globals.format);
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
output(apiResp.data, { format: globals.format });
|
|
83
144
|
}));
|
|
84
145
|
}
|
|
85
146
|
//# sourceMappingURL=hotel-search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotel-search.js","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hotel-search.js","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { registerTripStatusCommand } from './commands/trip-status.js';
|
|
|
15
15
|
import { registerSelectAncillariesCommand } from './commands/select-ancillaries.js';
|
|
16
16
|
import { registerRefundCommand } from './commands/refund.js';
|
|
17
17
|
import { registerExchangeCommand } from './commands/exchange.js';
|
|
18
|
-
import {
|
|
18
|
+
import { registerGetBookingCommand } from './commands/get-booking.js';
|
|
19
19
|
import { registerHotelLookupBookingCommand } from './commands/hotel-lookup-booking.js';
|
|
20
20
|
import { registerHotelCancelCommand } from './commands/hotel-cancel.js';
|
|
21
21
|
import { registerAuthCommands } from './commands/auth/index.js';
|
|
@@ -46,7 +46,7 @@ export function createProgram() {
|
|
|
46
46
|
registerSelectAncillariesCommand(program);
|
|
47
47
|
registerTripStatusCommand(program);
|
|
48
48
|
// Post-booking
|
|
49
|
-
|
|
49
|
+
registerGetBookingCommand(program);
|
|
50
50
|
registerHotelLookupBookingCommand(program);
|
|
51
51
|
registerHotelCancelCommand(program);
|
|
52
52
|
registerRefundCommand(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gojinko/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"jinko": "./dist/bin/jinko.js"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"docs:gen": "tsx scripts/gen-cli-docs.ts"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@gojinko/api-client": "1.
|
|
20
|
+
"@gojinko/api-client": "1.3.0",
|
|
21
21
|
"commander": "^12.1.0",
|
|
22
22
|
"chalk": "^5.4.1",
|
|
23
23
|
"open": "^10.0.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-booking.d.ts","sourceRoot":"","sources":["../../src/commands/lookup-booking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAenE"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { withClient, output } from './shared.js';
|
|
2
|
-
export function registerLookupBookingCommand(program) {
|
|
3
|
-
program
|
|
4
|
-
.command('lookup-booking')
|
|
5
|
-
.description('Look up a booking by Jinko reference + last name (guest access).')
|
|
6
|
-
.requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
|
|
7
|
-
.requiredOption('--last-name <name>', 'Last name of the primary traveler')
|
|
8
|
-
.action(withClient(async (client, globals, opts) => {
|
|
9
|
-
const response = await client.lookupBooking({
|
|
10
|
-
booking_ref: opts.ref,
|
|
11
|
-
last_name: opts.lastName,
|
|
12
|
-
});
|
|
13
|
-
output(response, { format: globals.format });
|
|
14
|
-
}));
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=lookup-booking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-booking.js","sourceRoot":"","sources":["../../src/commands/lookup-booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,kEAAkE,CAAC;SAC/E,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACzE,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC1C,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,SAAS,EAAE,IAAI,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
|