@tapflowio/ios-agent 0.30.0 → 0.31.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/bin/guest-helper +0 -0
- package/bin/screencapture-helper +0 -0
- package/dist/DeviceChromeLoader.d.ts +28 -1
- package/dist/DeviceChromeLoader.d.ts.map +1 -1
- package/dist/DeviceChromeLoader.js +118 -37
- package/dist/DeviceChromeLoader.js.map +1 -1
- package/dist/FoldableInput.d.ts +58 -0
- package/dist/FoldableInput.d.ts.map +1 -0
- package/dist/FoldableInput.js +166 -0
- package/dist/FoldableInput.js.map +1 -0
- package/dist/GuestHelper.d.ts +109 -0
- package/dist/GuestHelper.d.ts.map +1 -0
- package/dist/GuestHelper.js +437 -0
- package/dist/GuestHelper.js.map +1 -0
- package/dist/IOSAgent.d.ts +119 -2
- package/dist/IOSAgent.d.ts.map +1 -1
- package/dist/IOSAgent.js +586 -24
- package/dist/IOSAgent.js.map +1 -1
- package/dist/InputChannel.d.ts +38 -0
- package/dist/InputChannel.d.ts.map +1 -0
- package/dist/InputChannel.js +7 -0
- package/dist/InputChannel.js.map +1 -0
- package/dist/PanelState.d.ts +72 -0
- package/dist/PanelState.d.ts.map +1 -0
- package/dist/PanelState.js +192 -0
- package/dist/PanelState.js.map +1 -0
- package/dist/PhysicalOrientation.d.ts +58 -0
- package/dist/PhysicalOrientation.d.ts.map +1 -0
- package/dist/PhysicalOrientation.js +155 -0
- package/dist/PhysicalOrientation.js.map +1 -0
- package/dist/ScreenCaptureStreamer.d.ts +12 -1
- package/dist/ScreenCaptureStreamer.d.ts.map +1 -1
- package/dist/ScreenCaptureStreamer.js +28 -3
- package/dist/ScreenCaptureStreamer.js.map +1 -1
- package/dist/SimctlWrapper.d.ts +18 -1
- package/dist/SimctlWrapper.d.ts.map +1 -1
- package/dist/SimctlWrapper.js +43 -1
- package/dist/SimctlWrapper.js.map +1 -1
- package/dist/TouchHelper.d.ts +3 -2
- package/dist/TouchHelper.d.ts.map +1 -1
- package/dist/TouchHelper.js +4 -6
- package/dist/TouchHelper.js.map +1 -1
- package/dist/TypePanels.d.ts +33 -0
- package/dist/TypePanels.d.ts.map +1 -0
- package/dist/TypePanels.js +68 -0
- package/dist/TypePanels.js.map +1 -0
- package/dist/panels.d.ts +52 -0
- package/dist/panels.d.ts.map +1 -0
- package/dist/panels.js +68 -0
- package/dist/panels.js.map +1 -0
- package/package.json +6 -5
package/bin/guest-helper
ADDED
|
Binary file
|
package/bin/screencapture-helper
CHANGED
|
Binary file
|
|
@@ -2,11 +2,27 @@ import type { ChromeData, ChromeButton, ChromeRect } from '@tapflowio/protocol';
|
|
|
2
2
|
/** Runs a tool and resolves its stdout. Killing on timeout ends the swift interpreter too: the `swift`
|
|
3
3
|
* driver execs into `swift-frontend` under the same pid (measured). */
|
|
4
4
|
export type ChromeRunner = (cmd: string, args: string[], timeoutMs: number, signal: AbortSignal) => Promise<Buffer>;
|
|
5
|
+
/** Quarter turns clockwise to draw a button's artwork at, so it lies in the frame's own space. */
|
|
6
|
+
type ArtTurn = 0 | 90 | 180 | 270;
|
|
5
7
|
type ScreenSize = {
|
|
6
8
|
width: number;
|
|
7
9
|
height: number;
|
|
8
10
|
};
|
|
9
11
|
export declare function screenSizeFromDeviceType(profile: unknown, capabilities: unknown): ScreenSize | null;
|
|
12
|
+
type CornerRadii = {
|
|
13
|
+
topLeft: number;
|
|
14
|
+
topRight: number;
|
|
15
|
+
bottomRight: number;
|
|
16
|
+
bottomLeft: number;
|
|
17
|
+
};
|
|
18
|
+
/** What a device type's `capabilities.plist` says about one of its panels, found by that panel's frame. */
|
|
19
|
+
export interface PanelDisplay {
|
|
20
|
+
/** The panel's `nativeOrientation`, which its frame is drawn in and its buttons' artwork is not. */
|
|
21
|
+
artTurn: ArtTurn;
|
|
22
|
+
/** Its screen's corners in points, or null when the plist does not state all four. */
|
|
23
|
+
cornerRadii: CornerRadii | null;
|
|
24
|
+
}
|
|
25
|
+
export declare function panelDisplayFromCapabilities(capabilities: unknown, chromeId: string): PanelDisplay | null;
|
|
10
26
|
export interface DeviceChromeLoaderOptions {
|
|
11
27
|
run?: ChromeRunner;
|
|
12
28
|
chromeMapPath?: string;
|
|
@@ -16,6 +32,12 @@ export interface DeviceChromeLoaderOptions {
|
|
|
16
32
|
cacheDir?: string;
|
|
17
33
|
loadBudgetMs?: number;
|
|
18
34
|
}
|
|
35
|
+
/** One panel of a multi-panel device, for `DeviceChromeLoader.load`. `width`/`height` are points. */
|
|
36
|
+
export interface ChromePanel {
|
|
37
|
+
chromeId: string;
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
}
|
|
19
41
|
export declare class DeviceChromeLoader {
|
|
20
42
|
private readonly run;
|
|
21
43
|
private readonly chromeMapPath;
|
|
@@ -30,7 +52,12 @@ export declare class DeviceChromeLoader {
|
|
|
30
52
|
private readonly loads;
|
|
31
53
|
private deviceTypes;
|
|
32
54
|
constructor(options?: DeviceChromeLoaderOptions);
|
|
33
|
-
|
|
55
|
+
/**
|
|
56
|
+
* `panel` picks one panel of a multi-panel device (iPhone Duo): its own DeviceKit frame and its size in
|
|
57
|
+
* points, from `simctl io enumerate`. Without it the frame is the device model's, which is the only one
|
|
58
|
+
* every other device has.
|
|
59
|
+
*/
|
|
60
|
+
load(typeIdentifier: string, panel?: ChromePanel): Promise<ChromeData | null>;
|
|
34
61
|
/** Once per process when it succeeds: it used to run twice on every boot. */
|
|
35
62
|
private listDeviceTypes;
|
|
36
63
|
private loadUncached;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceChromeLoader.d.ts","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgB/E;wEACwE;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"DeviceChromeLoader.d.ts","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAgB/E;wEACwE;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAqGnH,kGAAkG;AAClG,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAA;AAqejC,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAmBnD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAiBnG;AAED,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjG,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,oGAAoG;IACpG,OAAO,EAAE,OAAO,CAAA;IAChB,sFAAsF;IACtF,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;CAChC;AAMD,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAczG;AA4GD,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qGAAqG;AACrG,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC;;;6EAGyE;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgD;IACtE,OAAO,CAAC,WAAW,CAAgC;gBAEvC,OAAO,GAAE,yBAA8B;IASnD;;;;OAIG;IACH,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkB7E,6EAA6E;YAC/D,eAAe;YAQf,YAAY;CA+M3B;AAED,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -52,10 +52,15 @@ async function renderSwift(ctx, script, inputs, outPath) {
|
|
|
52
52
|
// compositeW/H = device body dimensions in 1× PDF pts (before button margin expansion).
|
|
53
53
|
// For composite PDF: pdfSize.width / pdfSize.height.
|
|
54
54
|
// For nine-slice: leftWidth+screenW+rightWidth / topHeight+screenH+bottomHeight.
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
|
|
55
|
+
// rightWidth: the trailing bezel, which a trailing top-anchor x offset is measured from.
|
|
56
|
+
// artTurn: how far to turn every button's artwork — a frame drawn in its panel's native orientation
|
|
57
|
+
// (`nativeOrientation` in capabilities.plist) still ships its buttons drawn upright for the person holding
|
|
58
|
+
// the device. Measured on the iPhone Duo's unfolded frame (phone14, native 270): its volume art is 63×16 on
|
|
59
|
+
// a left anchor and its power 16×107 on a top one, each a quarter turn from the edge it is placed on.
|
|
60
|
+
async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compositeH, scale = 2, rightWidth = 0, artTurn = 0) {
|
|
61
|
+
// A quarter-turned artwork swaps its sides, and every margin and offset below is measured on the turned one.
|
|
62
|
+
const quarter = artTurn === 90 || artTurn === 270;
|
|
63
|
+
const turned = (size) => quarter ? { width: size.height, height: size.width } : size;
|
|
59
64
|
const margins = { left: 0, top: 0, right: 0, bottom: 0 };
|
|
60
65
|
const infos = [];
|
|
61
66
|
for (const inp of inputs) {
|
|
@@ -65,7 +70,7 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
|
|
|
65
70
|
if (!existsSync(pdfPath))
|
|
66
71
|
continue;
|
|
67
72
|
try {
|
|
68
|
-
const size = await getSipsSize(ctx, pdfPath);
|
|
73
|
+
const size = turned(await getSipsSize(ctx, pdfPath));
|
|
69
74
|
const roll = inp.offsets.rollover ?? inp.offsets.normal;
|
|
70
75
|
infos.push({ input: inp, w: size.width, h: size.height, roll });
|
|
71
76
|
}
|
|
@@ -118,10 +123,14 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
|
|
|
118
123
|
break;
|
|
119
124
|
}
|
|
120
125
|
case 'top': {
|
|
126
|
+
// Leading: roll.x is the button's leading edge from the frame's own, as roll.y is for a left-anchored
|
|
127
|
+
// one. Measured against DeviceHub on the iPhone Duo's unfolded frame (phone14), whose power button sits
|
|
128
|
+
// at 243 ±8 pt: this puts it at 249.5, where the previous reading (leftWidth + roll.x − w/2, fitted by
|
|
129
|
+
// eye to an iPad's nine-slice frame) put it at 159.5. On that iPad the two differ by w − leftWidth, 5 pt.
|
|
121
130
|
const align = inp.align ?? 'leading';
|
|
122
131
|
centerX = align === 'center' ? mL + compositeW / 2 + roll.x
|
|
123
132
|
: align === 'trailing' ? mL + (compositeW - rightWidth) + roll.x
|
|
124
|
-
: mL +
|
|
133
|
+
: mL + roll.x + w / 2;
|
|
125
134
|
topY = mT + roll.y;
|
|
126
135
|
break;
|
|
127
136
|
}
|
|
@@ -138,6 +147,7 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
|
|
|
138
147
|
topLeftX: btnTopLeftX,
|
|
139
148
|
topLeftY: btnTopLeftY,
|
|
140
149
|
onTop: inp.onTop ?? false,
|
|
150
|
+
turn: artTurn,
|
|
141
151
|
});
|
|
142
152
|
// imageDown: pressed state PDF at the same position as the normal button
|
|
143
153
|
let pressed = null;
|
|
@@ -145,9 +155,10 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
|
|
|
145
155
|
const downPath = join(resourcesDir, `${inp.imageDown}.pdf`);
|
|
146
156
|
if (existsSync(downPath)) {
|
|
147
157
|
try {
|
|
148
|
-
const downSize = await getSipsSize(ctx, downPath);
|
|
158
|
+
const downSize = turned(await getSipsSize(ctx, downPath));
|
|
149
159
|
pressed = {
|
|
150
160
|
pdfPath: downPath,
|
|
161
|
+
turn: artTurn,
|
|
151
162
|
topLeftX: btnTopLeftX,
|
|
152
163
|
topLeftY: btnTopLeftY,
|
|
153
164
|
pdfW: downSize.width,
|
|
@@ -182,7 +193,7 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
|
|
|
182
193
|
const align = inp.align ?? 'leading';
|
|
183
194
|
normalCX = align === 'center' ? mL + compositeW / 2 + nx
|
|
184
195
|
: align === 'trailing' ? mL + (compositeW - rightWidth) + nx
|
|
185
|
-
: mL +
|
|
196
|
+
: mL + nx + w / 2;
|
|
186
197
|
normalCY = mT + ny - h / 2;
|
|
187
198
|
break;
|
|
188
199
|
}
|
|
@@ -218,22 +229,24 @@ async function computeButtonLayout(ctx, inputs, resourcesDir, compositeW, compos
|
|
|
218
229
|
// ---------------------------------------------------------------------------
|
|
219
230
|
// Single PDF → PNG at 2× (used for pressed-state button images)
|
|
220
231
|
// ---------------------------------------------------------------------------
|
|
221
|
-
function renderPdfToPng(ctx, pdfPath, outPath) {
|
|
232
|
+
function renderPdfToPng(ctx, pdfPath, outPath, turn = 0) {
|
|
222
233
|
const SCRIPT = `
|
|
223
234
|
import Foundation
|
|
224
235
|
import CoreGraphics
|
|
225
236
|
import ImageIO
|
|
226
237
|
|
|
227
238
|
let src = CommandLine.arguments[1]
|
|
228
|
-
let
|
|
239
|
+
let turn = Int(CommandLine.arguments[2]) ?? 0
|
|
240
|
+
let dst = CommandLine.arguments[3]
|
|
229
241
|
let scale: CGFloat = 2
|
|
230
242
|
|
|
231
243
|
guard let doc = CGPDFDocument(URL(fileURLWithPath: src) as CFURL),
|
|
232
244
|
let page = doc.page(at: 1) else { exit(1) }
|
|
233
245
|
|
|
234
246
|
let box = page.getBoxRect(.mediaBox)
|
|
235
|
-
let
|
|
236
|
-
let
|
|
247
|
+
let quarter = turn == 90 || turn == 270
|
|
248
|
+
let w = max(1, Int(ceil((quarter ? box.height : box.width) * scale)))
|
|
249
|
+
let h = max(1, Int(ceil((quarter ? box.width : box.height) * scale)))
|
|
237
250
|
|
|
238
251
|
let ctx = CGContext(
|
|
239
252
|
data: nil, width: w, height: h,
|
|
@@ -242,6 +255,13 @@ let ctx = CGContext(
|
|
|
242
255
|
bitmapInfo: CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue).rawValue
|
|
243
256
|
)!
|
|
244
257
|
ctx.scaleBy(x: scale, y: scale)
|
|
258
|
+
// Clockwise as the picture is seen. CoreGraphics' y axis points up, so a positive angle turns it counterclockwise.
|
|
259
|
+
switch turn {
|
|
260
|
+
case 90: ctx.translateBy(x: 0, y: box.width); ctx.rotate(by: -.pi / 2)
|
|
261
|
+
case 180: ctx.translateBy(x: box.width, y: box.height); ctx.rotate(by: .pi)
|
|
262
|
+
case 270: ctx.translateBy(x: box.height, y: 0); ctx.rotate(by: .pi / 2)
|
|
263
|
+
default: break
|
|
264
|
+
}
|
|
245
265
|
ctx.drawPDFPage(page)
|
|
246
266
|
|
|
247
267
|
let img = ctx.makeImage()!
|
|
@@ -249,7 +269,7 @@ let dest = CGImageDestinationCreateWithURL(URL(fileURLWithPath: dst) as CFURL, "
|
|
|
249
269
|
CGImageDestinationAddImage(dest, img, nil)
|
|
250
270
|
CGImageDestinationFinalize(dest)
|
|
251
271
|
`;
|
|
252
|
-
return renderSwift(ctx, SCRIPT, [pdfPath], outPath);
|
|
272
|
+
return renderSwift(ctx, SCRIPT, [pdfPath, String(turn)], outPath);
|
|
253
273
|
}
|
|
254
274
|
// ---------------------------------------------------------------------------
|
|
255
275
|
// Frame PNG rendering — composite PDF path
|
|
@@ -509,6 +529,53 @@ export function screenSizeFromDeviceType(profile, capabilities) {
|
|
|
509
529
|
}
|
|
510
530
|
return null;
|
|
511
531
|
}
|
|
532
|
+
// Xcode 27 states per display what a multi-panel device needs and the frame does not: each corner's radius,
|
|
533
|
+
// and the orientation the panel is natively drawn in. Matched on `chromeIdentifier`, the same id
|
|
534
|
+
// `simctl io enumerate` reports for the panel. An orientation that is not a quarter turn reads as none, which
|
|
535
|
+
// is what every frame was drawn with before this.
|
|
536
|
+
export function panelDisplayFromCapabilities(capabilities, chromeId) {
|
|
537
|
+
const displays = capabilities?.capabilities?.displays;
|
|
538
|
+
if (!Array.isArray(displays))
|
|
539
|
+
return null;
|
|
540
|
+
const display = displays.find((d) => d?.chromeIdentifier === chromeId);
|
|
541
|
+
if (!display)
|
|
542
|
+
return null;
|
|
543
|
+
const turn = display.nativeOrientation;
|
|
544
|
+
const artTurn = turn === 90 || turn === 180 || turn === 270 ? turn : 0;
|
|
545
|
+
const corner = (key) => typeof display[key] === 'number' && display[key] >= 0 ? display[key] : null;
|
|
546
|
+
const [topLeft, topRight, bottomRight, bottomLeft] = ['cornerRadiusUL', 'cornerRadiusUR', 'cornerRadiusLR', 'cornerRadiusLL'].map(corner);
|
|
547
|
+
const cornerRadii = topLeft !== null && topRight !== null && bottomRight !== null && bottomLeft !== null
|
|
548
|
+
? { topLeft, topRight, bottomRight, bottomLeft }
|
|
549
|
+
: null;
|
|
550
|
+
return { artTurn, cornerRadii };
|
|
551
|
+
}
|
|
552
|
+
async function loadPanelDisplay(ctx, profilesDir, name, chromeId) {
|
|
553
|
+
try {
|
|
554
|
+
if (!name)
|
|
555
|
+
return null;
|
|
556
|
+
const path = join(profilesDir, `${name}.simdevicetype`, 'Contents', 'Resources', 'capabilities.plist');
|
|
557
|
+
return existsSync(path) ? panelDisplayFromCapabilities(await readPlistAsJson(ctx, path), chromeId) : null;
|
|
558
|
+
}
|
|
559
|
+
catch {
|
|
560
|
+
return null;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* The screen's corner fields. With the panel's own corners known they win over the frame's outline less its
|
|
565
|
+
* bezel, which holds for an ordinary iPhone (phone11: 80 − 18 = 62, its stated 62) and not for the Duo
|
|
566
|
+
* (phone14: 100 − 17 = 83 against 55; phone15: one 54 against 8 at the hinge and 59 outside). The stated
|
|
567
|
+
* points are scaled into the frame's space, which on phone14 is 626 wide for a 669 pt screen.
|
|
568
|
+
*/
|
|
569
|
+
function cornerFields(display, fromFrame1x, framePerPoint, scale) {
|
|
570
|
+
const stated = display?.cornerRadii;
|
|
571
|
+
if (!stated)
|
|
572
|
+
return { screenCornerRadius: Math.round(fromFrame1x * scale) };
|
|
573
|
+
const px = (r) => Math.round(r * framePerPoint * scale);
|
|
574
|
+
const radii = { topLeft: px(stated.topLeft), topRight: px(stated.topRight), bottomRight: px(stated.bottomRight), bottomLeft: px(stated.bottomLeft) };
|
|
575
|
+
const largest = Math.max(radii.topLeft, radii.topRight, radii.bottomRight, radii.bottomLeft);
|
|
576
|
+
const uniform = Object.values(radii).every((r) => r === largest);
|
|
577
|
+
return uniform ? { screenCornerRadius: largest } : { screenCornerRadius: largest, screenCornerRadii: radii };
|
|
578
|
+
}
|
|
512
579
|
async function loadProfileScreenSize(ctx, profilesDir, name) {
|
|
513
580
|
try {
|
|
514
581
|
if (!name)
|
|
@@ -531,12 +598,12 @@ async function attachButtonPngs(ctx, buttons, drawData, chromeName) {
|
|
|
531
598
|
for (let i = 0; i < buttons.length; i++) {
|
|
532
599
|
if (i >= drawData.length)
|
|
533
600
|
continue;
|
|
534
|
-
const pdfPath = drawData[i]
|
|
535
|
-
const cacheKey = `tapflow-btn-normal-${chromeName}-${i}.png`;
|
|
601
|
+
const { pdfPath, turn } = drawData[i];
|
|
602
|
+
const cacheKey = `tapflow-btn-normal-${chromeName}-${i}${turn ? `-t${turn}` : ''}.png`;
|
|
536
603
|
const outPath = join(ctx.cacheDir, cacheKey);
|
|
537
604
|
try {
|
|
538
605
|
if (!existsSync(outPath) || statSync(pdfPath).mtimeMs > statSync(outPath).mtimeMs) {
|
|
539
|
-
await renderPdfToPng(ctx, pdfPath, outPath);
|
|
606
|
+
await renderPdfToPng(ctx, pdfPath, outPath, turn);
|
|
540
607
|
}
|
|
541
608
|
buttons[i].buttonPng = readFileSync(outPath).toString('base64');
|
|
542
609
|
}
|
|
@@ -553,11 +620,11 @@ async function attachPressedPngs(ctx, buttons, pressedData, chromeName, scale) {
|
|
|
553
620
|
const pd = pressedData[i];
|
|
554
621
|
if (!pd)
|
|
555
622
|
continue;
|
|
556
|
-
const cacheKey = `tapflow-btn-pressed-${chromeName}-${i}.png`;
|
|
623
|
+
const cacheKey = `tapflow-btn-pressed-${chromeName}-${i}${pd.turn ? `-t${pd.turn}` : ''}.png`;
|
|
557
624
|
const outPath = join(ctx.cacheDir, cacheKey);
|
|
558
625
|
try {
|
|
559
626
|
if (!existsSync(outPath) || statSync(pd.pdfPath).mtimeMs > statSync(outPath).mtimeMs) {
|
|
560
|
-
await renderPdfToPng(ctx, pd.pdfPath, outPath);
|
|
627
|
+
await renderPdfToPng(ctx, pd.pdfPath, outPath, pd.turn);
|
|
561
628
|
}
|
|
562
629
|
buttons[i].pressedPng = readFileSync(outPath).toString('base64');
|
|
563
630
|
buttons[i].pressedRect = {
|
|
@@ -593,21 +660,28 @@ export class DeviceChromeLoader {
|
|
|
593
660
|
this.cacheDir = options.cacheDir ?? tmpdir();
|
|
594
661
|
this.loadBudgetMs = options.loadBudgetMs ?? LOAD_BUDGET_MS;
|
|
595
662
|
}
|
|
596
|
-
|
|
597
|
-
|
|
663
|
+
/**
|
|
664
|
+
* `panel` picks one panel of a multi-panel device (iPhone Duo): its own DeviceKit frame and its size in
|
|
665
|
+
* points, from `simctl io enumerate`. Without it the frame is the device model's, which is the only one
|
|
666
|
+
* every other device has.
|
|
667
|
+
*/
|
|
668
|
+
load(typeIdentifier, panel) {
|
|
669
|
+
// Keyed by the panel's frame too: the Duo's two panels are two chromes of one device type.
|
|
670
|
+
const key = panel ? `${typeIdentifier}#${panel.chromeId}` : typeIdentifier;
|
|
671
|
+
const pending = this.loads.get(key);
|
|
598
672
|
if (pending)
|
|
599
673
|
return pending;
|
|
600
674
|
const budget = new AbortController();
|
|
601
675
|
const timer = setTimeout(() => budget.abort(), this.loadBudgetMs);
|
|
602
676
|
timer.unref?.();
|
|
603
677
|
const ctx = { run: this.run, signal: budget.signal, cacheDir: this.cacheDir, incomplete: false };
|
|
604
|
-
const loading = this.loadUncached(typeIdentifier, ctx).catch(() => null).finally(() => clearTimeout(timer));
|
|
605
|
-
this.loads.set(
|
|
678
|
+
const loading = this.loadUncached(typeIdentifier, ctx, panel).catch(() => null).finally(() => clearTimeout(timer));
|
|
679
|
+
this.loads.set(key, loading);
|
|
606
680
|
// A load that skipped a button still gives this boot a device, but is not kept: the budget usually runs
|
|
607
681
|
// out in the button renders, and remembering that result would hide those buttons until a restart. What
|
|
608
682
|
// did render is on disk, so the next boot picks up where this one stopped.
|
|
609
683
|
void loading.then((chrome) => { if (!chrome || ctx.incomplete)
|
|
610
|
-
this.loads.delete(
|
|
684
|
+
this.loads.delete(key); });
|
|
611
685
|
return loading;
|
|
612
686
|
}
|
|
613
687
|
/** Once per process when it succeeds: it used to run twice on every boot. */
|
|
@@ -619,18 +693,24 @@ export class DeviceChromeLoader {
|
|
|
619
693
|
this.deviceTypes = types;
|
|
620
694
|
return types;
|
|
621
695
|
}
|
|
622
|
-
async loadUncached(typeIdentifier, ctx) {
|
|
696
|
+
async loadUncached(typeIdentifier, ctx, panel) {
|
|
623
697
|
try {
|
|
624
698
|
const types = await this.listDeviceTypes(ctx);
|
|
625
699
|
const typeInfo = types.find(t => t.identifier === typeIdentifier);
|
|
626
|
-
|
|
627
|
-
if (!
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
700
|
+
let chromeIdentifier = panel?.chromeId;
|
|
701
|
+
if (!chromeIdentifier) {
|
|
702
|
+
const modelId = typeInfo?.modelIdentifier;
|
|
703
|
+
if (!modelId)
|
|
704
|
+
return null;
|
|
705
|
+
const chromeMap = await readPlistAsJson(ctx, this.chromeMapPath);
|
|
706
|
+
const entry = chromeMap[modelId];
|
|
707
|
+
if (!entry)
|
|
708
|
+
return null;
|
|
709
|
+
chromeIdentifier = entry.ChromeIdentifier;
|
|
710
|
+
}
|
|
711
|
+
const chromeName = chromeIdentifier.split('.').pop();
|
|
712
|
+
// Only a panel load asks: a single-panel device keeps the frame-derived corners it always had.
|
|
713
|
+
const display = panel ? await loadPanelDisplay(ctx, this.profilesDir, typeInfo?.name, panel.chromeId) : null;
|
|
634
714
|
const resourcesDir = join(this.chromeDir, `${chromeName}.devicechrome`, 'Contents', 'Resources');
|
|
635
715
|
const chromeJsonPath = join(resourcesDir, 'chrome.json');
|
|
636
716
|
if (!existsSync(chromeJsonPath))
|
|
@@ -656,7 +736,7 @@ export class DeviceChromeLoader {
|
|
|
656
736
|
const screenH = pdfSize.height - topHeight - bottomHeight;
|
|
657
737
|
const bezelInset = Math.max(leftWidth, topHeight);
|
|
658
738
|
const screenCornerRadius1x = Math.max(0, outerRadius - bezelInset);
|
|
659
|
-
const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, pdfSize.width, pdfSize.height, scale,
|
|
739
|
+
const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, pdfSize.width, pdfSize.height, scale, rightWidth, display?.artTurn);
|
|
660
740
|
const expandedW = pdfSize.width + btnM.left + btnM.right;
|
|
661
741
|
const expandedH = pdfSize.height + btnM.top + btnM.bottom;
|
|
662
742
|
// v3: buttons excluded from framePng — rendered separately as CSS-animated overlays.
|
|
@@ -687,7 +767,7 @@ export class DeviceChromeLoader {
|
|
|
687
767
|
bottom: Math.round(paddingBottom * scale),
|
|
688
768
|
},
|
|
689
769
|
screenRect,
|
|
690
|
-
|
|
770
|
+
...cornerFields(display, screenCornerRadius1x, panel ? screenW / panel.width : 1, scale),
|
|
691
771
|
logicalWidth: Math.round(screenW),
|
|
692
772
|
logicalHeight: Math.round(screenH),
|
|
693
773
|
buttons,
|
|
@@ -724,7 +804,8 @@ export class DeviceChromeLoader {
|
|
|
724
804
|
const cornerW = cornerSize.width;
|
|
725
805
|
const cornerH = cornerSize.height; // should equal topHeight from sizing
|
|
726
806
|
// Get logical screen dimensions from the device type's plists
|
|
727
|
-
|
|
807
|
+
// A panel brings its own size: the device type's plists describe one panel, and on the Duo the cover.
|
|
808
|
+
const screenSize = panel ? { width: panel.width, height: panel.height } : await loadProfileScreenSize(ctx, this.profilesDir, typeInfo?.name);
|
|
728
809
|
if (!screenSize)
|
|
729
810
|
return null;
|
|
730
811
|
const screenW = screenSize.width;
|
|
@@ -734,7 +815,7 @@ export class DeviceChromeLoader {
|
|
|
734
815
|
const compositeH = topHeight + screenH + bottomHeight;
|
|
735
816
|
const bezelInset = Math.max(leftWidth, topHeight);
|
|
736
817
|
const screenCornerRadius1x = Math.max(0, outerRadius - bezelInset);
|
|
737
|
-
const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, compositeW, compositeH, scale,
|
|
818
|
+
const { margins: btnM, drawData, buttons, pressedData } = await computeButtonLayout(ctx, rawInputs, resourcesDir, compositeW, compositeH, scale, rightWidth, display?.artTurn);
|
|
738
819
|
const expandedW = compositeW + btnM.left + btnM.right;
|
|
739
820
|
const expandedH = compositeH + btnM.top + btnM.bottom;
|
|
740
821
|
// nb = no-buttons: buttons excluded from framePng, rendered separately as CSS-animated overlays
|
|
@@ -766,7 +847,7 @@ export class DeviceChromeLoader {
|
|
|
766
847
|
bottom: Math.round(paddingBottom * scale),
|
|
767
848
|
},
|
|
768
849
|
screenRect,
|
|
769
|
-
|
|
850
|
+
...cornerFields(display, screenCornerRadius1x, 1, scale),
|
|
770
851
|
logicalWidth: screenW,
|
|
771
852
|
logicalHeight: screenH,
|
|
772
853
|
buttons,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceChromeLoader.js","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeviceChromeLoader.js","sourceRoot":"","sources":["../src/DeviceChromeLoader.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAM3B,MAAM,eAAe,GAAG,+CAA+C,CAAA;AACvE,MAAM,UAAU,GAAG,qCAAqC,CAAA;AACxD,MAAM,YAAY,GAAG,uDAAuD,CAAA;AAgB5E,MAAM,aAAa,GAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACpG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EACxH,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC,CAAC,CAAA;AAEF,+FAA+F;AAC/F,MAAM,eAAe,GAAG,MAAM,CAAA;AAC9B,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAC/B;mFACmF;AACnF,MAAM,cAAc,GAAG,MAAM,CAAA;AAU7B,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB,KAAK,UAAU,eAAe,CAAC,GAAQ,EAAE,QAAgB;IACvD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5G,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,QAAgB;IACnD,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAChI,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACxF,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,MAAc,EAAE,MAAgB,EAAE,OAAe;IACpF,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,CAAA;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,GAAG,QAAQ,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,GAAG,MAAM,CAAA;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACnC,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACrF,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAkDD,iEAAiE;AACjE,wFAAwF;AACxF,qDAAqD;AACrD,iFAAiF;AACjF,yFAAyF;AACzF,oGAAoG;AACpG,6GAA6G;AAC7G,8GAA8G;AAC9G,wGAAwG;AACxG,KAAK,UAAU,mBAAmB,CAChC,GAAQ,EACR,MAAkB,EAClB,YAAoB,EACpB,UAAkB,EAClB,UAAkB,EAClB,KAAK,GAAG,CAAC,EACT,UAAU,GAAG,CAAC,EACd,UAAmB,CAAC;IAEpB,6GAA6G;IAC7G,MAAM,OAAO,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,CAAA;IACjD,MAAM,MAAM,GAAG,CAAC,IAAuC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACvH,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IAGxD,MAAM,KAAK,GAAc,EAAE,CAAA;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,SAAQ;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,CAAC,CAAA;QACtD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAQ;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;YACvD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACjE,CAAC;QAAC,MAAM,CAAC;YAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA,CAAC,8BAA8B;QAAC,CAAC;IAClE,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QAC/C,QAAQ,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC7B,KAAK,MAAM;gBAAI,OAAO,CAAC,IAAI,GAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAQ,MAAK;YAC/F,KAAK,OAAO;gBAAG,OAAO,CAAC,KAAK,GAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAS,MAAK;YAChG,KAAK,KAAK;gBAAK,OAAO,CAAC,GAAG,GAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAK;YAC/F,4FAA4F;YAC5F,KAAK,QAAQ;gBAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAI,MAAK;QACjG,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,MAAM,QAAQ,GAAqB,EAAE,CAAA;IACrC,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,MAAM,WAAW,GAA2B,EAAE,CAAA;IAE9C,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAA;QACvB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,OAAe,CAAA;QACnB,IAAI,IAAY,CAAA;QAEhB,QAAQ,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC7B,KAAK,MAAM;gBACT,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACrB,IAAI,GAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACrB,MAAK;YACP,KAAK,OAAO;gBACV,OAAO,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAA;gBAClC,IAAI,GAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACrB,MAAK;YACP,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;gBACpC,OAAO,GAAG,KAAK,KAAK,QAAQ,CAAG,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBACrD,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;wBACjD,CAAC,CAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBAC5C,IAAI,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAA;gBAC/B,MAAK;YACP,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,sGAAsG;gBACtG,wGAAwG;gBACxG,uGAAuG;gBACvG,0GAA0G;gBAC1G,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;gBACpC,OAAO,GAAG,KAAK,KAAK,QAAQ,CAAG,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBACrD,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;wBAChE,CAAC,CAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACpD,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBAClB,MAAK;YACP,CAAC;YACD;gBACE,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACrB,IAAI,GAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,6FAA6F;QAC7F,mDAAmD;QACnD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAChE,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAG,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,CAAC;YAChD,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAK,GAAG,CAAC,KAAK,IAAI,KAAK;YAC5B,IAAI,EAAM,OAAO;SAClB,CAAC,CAAA;QAEF,yEAAyE;QACzE,IAAI,OAAO,GAAuB,IAAI,CAAA;QACtC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,SAAS,MAAM,CAAC,CAAA;YAC3D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;oBACzD,OAAO,GAAG;wBACR,OAAO,EAAG,QAAQ;wBAClB,IAAI,EAAM,OAAO;wBACjB,QAAQ,EAAE,WAAW;wBACrB,QAAQ,EAAE,WAAW;wBACrB,IAAI,EAAM,QAAQ,CAAC,KAAK;wBACxB,IAAI,EAAM,QAAQ,CAAC,MAAM;qBAC1B,CAAA;gBACH,CAAC;gBAAC,MAAM,CAAC;oBAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA,CAAC,qCAAqC;gBAAC,CAAC;YACzE,CAAC;QACH,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEzB,0EAA0E;QAC1E,MAAM,EAAE,GAAG,GAAG,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,IAAI,QAAgB,CAAA;QACpB,IAAI,QAAgB,CAAA;QAEpB,QAAQ,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC7B,KAAK,OAAO;gBACV,QAAQ,GAAG,EAAE,GAAG,UAAU,GAAG,EAAE,CAAA;gBAC/B,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAA;gBAClB,MAAK;YACP,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;gBACpC,QAAQ,GAAG,KAAK,KAAK,QAAQ,CAAG,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE;oBACjD,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE;wBAC7C,CAAC,CAAwB,EAAE,GAAG,EAAE,CAAA;gBACzC,QAAQ,GAAG,EAAE,GAAG,UAAU,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBACvC,MAAK;YACP,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;gBACpC,QAAQ,GAAG,KAAK,KAAK,QAAQ,CAAG,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE;oBACjD,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC5D,CAAC,CAAwB,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBACjD,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC1B,MAAK;YACP,CAAC;YACD,SAAS,kCAAkC;gBACzC,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAA;gBAClB,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAA;QACtB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,IAAI;YACtD,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM;YAC5B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK;YACzB,YAAY,EAAE;gBACZ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC/B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;aAChC;YACD,kDAAkD;YAClD,yFAAyF;YACzF,gFAAgF;YAChF,kFAAkF;YAClF,cAAc,EAAE;gBACd,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC9B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;aACzE;YACD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC;YAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;AACpD,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,SAAS,cAAc,CAAC,GAAQ,EAAE,OAAe,EAAE,OAAe,EAAE,OAAgB,CAAC;IACnF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsChB,CAAA;IACC,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AACnE,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,mEAAmE;AACnE,8EAA8E;AAE9E,SAAS,cAAc,CACrB,GAAQ,EACR,YAAoB,EACpB,OAAe,EACf,OAAqE,EACrE,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAE3C,SAAS,UAAU,CAAC,CAAiB;QACnC,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,QAAQ,GAAG,CAAA;IACnF,CAAC;IAED,MAAM,MAAM,GAAG;;;;;;;;;;oBAUG,OAAO,CAAC,IAAI;oBACZ,OAAO,CAAC,GAAG;oBACX,OAAO,CAAC,KAAK;oBACb,OAAO,CAAC,MAAM;;;;IAI9B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;IAGpC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CtC,CAAA;IAEC,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;AAC1D,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAE9E,SAAS,kBAAkB,CACzB,GAAQ,EACR,UAGC,EACD,OAAe,EACf,SAAiB,EAAE,UAAkB,EACrC,SAAiB,EAAE,YAAoB,EACvC,OAAe,EAAE,OAAe,EAChC,OAAe,EAAE,OAAe,EAChC,OAAqE,EACrE,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAE3C,SAAS,UAAU,CAAC,CAAiB;QACnC,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,QAAQ,GAAG,CAAA;IACnF,CAAC;IAED,MAAM,MAAM,GAAG;;;;;;yBAMQ,SAAS;yBACT,UAAU;yBACV,SAAS;yBACT,YAAY;yBACZ,OAAO;yBACP,OAAO;yBACP,OAAO;yBACP,OAAO;oBACZ,OAAO,CAAC,IAAI;oBACZ,OAAO,CAAC,GAAG;oBACX,OAAO,CAAC,KAAK;oBACb,OAAO,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAgEV,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;wBAClC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;wBACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;wBAChC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;wBACjC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;wBACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;;;IAGnD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;IAGpC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BtC,CAAA;IAEC,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC;AAUD,mGAAmG;AACnG,aAAa;AACb,SAAS,SAAS,CAAC,KAAc,EAAE,MAAe,EAAE,KAAc;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACrG,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACxD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAA;AACjF,CAAC;AAED,iGAAiG;AACjG,EAAE;AACF,iGAAiG;AACjG,iGAAiG;AACjG,iGAAiG;AACjG,oGAAoG;AACpG,mGAAmG;AACnG,iGAAiG;AACjG,oFAAoF;AACpF,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,YAAqB;IAC9E,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,OAAkC,CAAA;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAA;QAClF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;IAC3B,CAAC;IACD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1E,MAAM,KAAK,GAAI,YAAwC,CAAC,YAAY,CAAA;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5D,MAAM,QAAQ,GAAI,KAAiC,CAAC,QAAQ,CAAA;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAQ;QACzD,MAAM,OAAO,GAAG,KAAgC,CAAA;QAChD,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAC1G,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAYD,4GAA4G;AAC5G,iGAAiG;AACjG,8GAA8G;AAC9G,kDAAkD;AAClD,MAAM,UAAU,4BAA4B,CAAC,YAAqB,EAAE,QAAgB;IAClF,MAAM,QAAQ,GAAI,YAAiE,EAAE,YAAY,EAAE,QAAQ,CAAA;IAC3G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAA2C,EAAE,gBAAgB,KAAK,QAAQ,CAC3E,CAAA;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACtC,MAAM,OAAO,GAAY,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAK,OAAO,CAAC,GAAG,CAAY,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAW,CAAC,CAAC,CAAC,IAAI,CAAA;IACjI,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACzI,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;QACtG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;QAChD,CAAC,CAAC,IAAI,CAAA;IACR,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;AACjC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAQ,EAAE,WAAmB,EAAE,IAAwB,EAAE,QAAgB;IACvG,IAAI,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAA;QACtG,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,OAA4B,EAAE,WAAmB,EAAE,aAAqB,EAAE,KAAa;IAEvF,MAAM,MAAM,GAAG,OAAO,EAAE,WAAW,CAAA;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAA;IAC3E,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,KAAK,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAA;IACpJ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IAChE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAA;AAC9G,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,GAAQ,EAAE,WAAmB,EAAE,IAAwB;IAC1F,IAAI,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,gBAAgB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;QACxF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;QACrD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;QAEjE,OAAO,wBAAwB,CAC7B,MAAM,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,EACrC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,sFAAsF;AACtF,8EAA8E;AAE9E,KAAK,UAAU,gBAAgB,CAC7B,GAAQ,EACR,OAAuB,EACvB,QAA0B,EAC1B,UAAkB;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM;YAAE,SAAQ;QAClC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,sBAAsB,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClF,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YACnD,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACjE,CAAC;QAAC,MAAM,CAAC;YAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA,CAAC,6BAA6B;QAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAE9E,KAAK,UAAU,iBAAiB,CAC9B,GAAQ,EACR,OAAuB,EACvB,WAAmC,EACnC,UAAkB,EAClB,KAAa;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,EAAE;YAAE,SAAQ;QAEjB,MAAM,QAAQ,GAAG,uBAAuB,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;QAC7F,MAAM,OAAO,GAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE7C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrF,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAI,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACjE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG;gBACvB,CAAC,EAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACvC,CAAC,EAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACvC,KAAK,EAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAM,KAAK,CAAC;gBACtC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAM,KAAK,CAAC;aACvC,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA,CAAC,6BAA6B;QAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAuBD,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAc;IACjB,aAAa,CAAQ;IACrB,SAAS,CAAQ;IACjB,WAAW,CAAQ;IACnB,QAAQ,CAAQ;IAChB,YAAY,CAAQ;IACrC;;;6EAGyE;IACxD,KAAK,GAAG,IAAI,GAAG,EAAsC,CAAA;IAC9D,WAAW,GAA4B,IAAI,CAAA;IAEnD,YAAY,UAAqC,EAAE;QACjD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,aAAa,CAAA;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,eAAe,CAAA;QAC7D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAA;QAChD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,YAAY,CAAA;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,cAAc,CAAA;IAC5D,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,cAAsB,EAAE,KAAmB;QAC9C,2FAA2F;QAC3F,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAA;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;QAC3B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACjE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;QACf,MAAM,GAAG,GAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;QACrG,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAClH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC5B,wGAAwG;QACxG,wGAAwG;QACxG,2EAA2E;QAC3E,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACxF,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,6EAA6E;IACrE,KAAK,CAAC,eAAe,CAAC,GAAQ;QACpC,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAA;QAC7C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACxG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAqB,CAAA;QAC3E,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,cAAsB,EAAE,GAAQ,EAAE,KAAmB;QAC9E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;YAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAA;YACjE,IAAI,gBAAgB,GAAG,KAAK,EAAE,QAAQ,CAAA;YACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,QAAQ,EAAE,eAAe,CAAA;gBACzC,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAA;gBACzB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAiD,CAAA;gBAChH,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;gBAChC,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAA;gBACvB,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAA;YAC3C,CAAC;YAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAA;YACrD,+FAA+F;YAC/F,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC5G,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;YAChG,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;YACxD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAclE,CAAA;YAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAA;YACnF,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;YAChD,MAAM,WAAW,GAAK,EAAE,CAAC,IAAI,IAAM,CAAC,CAAA;YACpC,MAAM,YAAY,GAAI,EAAE,CAAC,KAAK,IAAK,CAAC,CAAA;YACpC,MAAM,UAAU,GAAM,EAAE,CAAC,GAAG,IAAO,CAAC,CAAA;YACpC,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAA;YAEpC,MAAM,WAAW,GAAI,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,aAAa,IAAI,CAAC,CAAA;YAC9E,MAAM,SAAS,GAAM,UAAU,CAAC,MAAM,IAAI,EAAE,CAAA;YAC5C,MAAM,KAAK,GAAU,CAAC,CAAA;YAEtB,0EAA0E;YAC1E,+FAA+F;YAC/F,yFAAyF;YACzF,0EAA0E;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;YAC7D,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;gBACpD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,GAAI,SAAS,GAAI,UAAU,CAAA;gBACxD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,GAAI,YAAY,CAAA;gBAE1D,MAAM,UAAU,GAAU,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBACxD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,CAAA;gBAElE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CACjF,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CACjG,CAAA;gBAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;gBACzD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,MAAM,CAAA;gBAE1D,qFAAqF;gBACrF,oGAAoG;gBACpG,oGAAoG;gBACpG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBAC9H,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3F,MAAM,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBAC9D,CAAC;gBAED,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;gBAC1D,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;gBAErE,MAAM,UAAU,GAAe;oBAC7B,CAAC,EAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBACnD,CAAC,EAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAI,KAAK,CAAC;oBACnD,KAAK,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;oBACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;iBACpC,CAAA;gBAED,OAAO;oBACL,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACpD,UAAU,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,GAAI,WAAW,GAAG,YAAY,CAAC,GAAI,KAAK,CAAC;oBAC/E,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,GAAI,aAAa,CAAC,GAAG,KAAK,CAAC;oBAC/E,cAAc,EAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC9C,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC9C,OAAO,EAAE;wBACP,IAAI,EAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAK,KAAK,CAAC;wBACzC,KAAK,EAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI,KAAK,CAAC;wBACzC,GAAG,EAAK,IAAI,CAAC,KAAK,CAAC,UAAU,GAAM,KAAK,CAAC;wBACzC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;qBAC1C;oBACD,UAAU;oBACV,GAAG,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBACxF,YAAY,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBAClC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBAClC,OAAO;iBACR,CAAA;YACH,CAAC;YAED,0EAA0E;YAC1E,8FAA8F;YAC9F,gGAAgG;YAChG,8FAA8F;YAC9F,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;gBAC3D,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAM,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,CAAC;gBACtD,GAAG,EAAU,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;gBAClD,QAAQ,EAAK,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAC;gBACvD,KAAK,EAAQ,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC;gBACpD,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW,MAAM,CAAC;gBAC1D,MAAM,EAAO,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,CAAC;gBACrD,UAAU,EAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,MAAM,CAAC;gBACzD,IAAI,EAAS,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;aACpD,CAAA;YAED,8BAA8B;YAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE7D,4EAA4E;YAC5E,4EAA4E;YAC5E,gEAAgE;YAChE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAA;YAChC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAA,CAAE,qCAAqC;YAExE,8DAA8D;YAC9D,sGAAsG;YACtG,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC5I,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAA;YAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAA;YAChC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAA;YAEjC,kFAAkF;YAClF,MAAM,UAAU,GAAG,SAAS,GAAI,OAAO,GAAG,UAAU,CAAA;YACpD,MAAM,UAAU,GAAG,SAAS,GAAI,OAAO,GAAG,YAAY,CAAA;YAEtD,MAAM,UAAU,GAAU,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YACxD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,CAAA;YAElE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CACjF,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAC1F,CAAA;YAED,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACrD,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,MAAM,CAAA;YAEtD,gGAAgG;YAChG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,8BAA8B,UAAU,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC9J,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;mBACrC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAA;YAEvE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,kBAAkB,CACtB,GAAG,EAAE,UAAU,EAAE,SAAS,EAC1B,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAClC,IAAI,EAAE,EAAE,CACT,CAAA;YACH,CAAC;YAED,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;YAC1D,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;YAErE,8DAA8D;YAC9D,MAAM,UAAU,GAAe;gBAC7B,CAAC,EAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,GAAI,KAAK,CAAC;gBACpD,CAAC,EAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,GAAI,SAAS,CAAC,GAAI,KAAK,CAAC;gBACpD,KAAK,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;aACpC,CAAA;YAED,OAAO;gBACL,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpD,UAAU,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC,GAAI,KAAK,CAAC;gBAC3E,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,UAAU,GAAI,aAAa,CAAC,GAAG,KAAK,CAAC;gBAC3E,cAAc,EAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC9C,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC9C,OAAO,EAAE;oBACP,IAAI,EAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAK,KAAK,CAAC;oBACzC,KAAK,EAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI,KAAK,CAAC;oBACzC,GAAG,EAAK,IAAI,CAAC,KAAK,CAAC,UAAU,GAAM,KAAK,CAAC;oBACzC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC1C;gBACD,UAAU;gBACV,GAAG,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC,EAAE,KAAK,CAAC;gBACxD,YAAY,EAAG,OAAO;gBACtB,aAAa,EAAE,OAAO;gBACtB,OAAO;aACR,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type InputChannel } from './InputChannel.js';
|
|
2
|
+
import type { GuestHelper } from './GuestHelper.js';
|
|
3
|
+
/**
|
|
4
|
+
* A gesture that starts within this fraction of any screen edge carries `FromEdgeTip`, which is what makes
|
|
5
|
+
* SpringBoard treat a swipe as a system gesture (home, app switcher). Measured on the Duo's cover: a home
|
|
6
|
+
* flick works from 7% of the bottom edge and not from 12%, because the system checks the start point
|
|
7
|
+
* itself — so the flag on a touch it does not consider an edge changes nothing, and a tap that carries it
|
|
8
|
+
* stays a tap. The threshold can therefore be generous. It is the same for all four edges, which also makes
|
|
9
|
+
* it independent of how the panel's UI is rotated inside its buffer.
|
|
10
|
+
*/
|
|
11
|
+
export declare const EDGE_FRACTION = 0.08;
|
|
12
|
+
export interface FoldableInputDeps {
|
|
13
|
+
/** The device's guest helper, owned by IOSAgent outside `DeviceState`, or null if there is none. */
|
|
14
|
+
guest: () => GuestHelper | null;
|
|
15
|
+
/** The display UUID of the panel the device is showing, or null when it is not known yet. */
|
|
16
|
+
litScreen: () => string | null;
|
|
17
|
+
minContactMs?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* `InputChannel` for a device with more than one integrated panel, through `guest-helper` inside the
|
|
21
|
+
* simulator. Coordinates arrive normalized to the lit panel's framebuffer — the same space TouchHelper
|
|
22
|
+
* gets — and go to that panel's virtual touchscreen as they are: measured on the unfolded panel, whose UI
|
|
23
|
+
* is turned inside a portrait buffer, buffer coordinates land where they point.
|
|
24
|
+
*/
|
|
25
|
+
export declare class FoldableInput implements InputChannel {
|
|
26
|
+
private readonly deps;
|
|
27
|
+
private gesture;
|
|
28
|
+
private touchStartedAt;
|
|
29
|
+
private stopped;
|
|
30
|
+
private heldEnd;
|
|
31
|
+
constructor(deps: FoldableInputDeps);
|
|
32
|
+
start(): void;
|
|
33
|
+
stop(): void;
|
|
34
|
+
inputState(): 'ready' | 'starting' | 'unavailable';
|
|
35
|
+
ownsGesture(): boolean;
|
|
36
|
+
touchStart(x: number, y: number): boolean;
|
|
37
|
+
touchMove(x: number, y: number): boolean;
|
|
38
|
+
touchEnd(): boolean;
|
|
39
|
+
/** TouchHelper's minimum contact, for the same reason (a client sends down and up back to back). */
|
|
40
|
+
touchEndAfterMinContact(): Promise<boolean>;
|
|
41
|
+
pinchStart(x1: number, y1: number, x2: number, y2: number): boolean;
|
|
42
|
+
pinchMove(x1: number, y1: number, x2: number, y2: number): boolean;
|
|
43
|
+
pinchEnd(): boolean;
|
|
44
|
+
sendKey(usage: number, modifiers?: number): boolean;
|
|
45
|
+
pressButton(usagePage: number, usage: number): boolean;
|
|
46
|
+
pressButtonDown(usagePage: number, usage: number): boolean;
|
|
47
|
+
pressButtonUp(usagePage: number, usage: number): boolean;
|
|
48
|
+
pressLegacyButton(code: number): boolean;
|
|
49
|
+
/** The panel a new gesture goes to, fixed for the gesture: a fold mid-drag finishes the drag where it began. */
|
|
50
|
+
private open;
|
|
51
|
+
/**
|
|
52
|
+
* A key or button, acked on the write like TouchHelper's: the helper plays it and answers later, and
|
|
53
|
+
* waiting on that would change what an ack means. A refusal it reports afterwards is logged.
|
|
54
|
+
*/
|
|
55
|
+
private fire;
|
|
56
|
+
private releaseHeldEnd;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=FoldableInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FoldableInput.d.ts","sourceRoot":"","sources":["../src/FoldableInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAInD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,OAAO,CAAA;AAiBjC,MAAM,WAAW,iBAAiB;IAChC,oGAAoG;IACpG,KAAK,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IAC/B,6FAA6F;IAC7F,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,YAAY;IAMpC,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAA0F;gBAE5E,IAAI,EAAE,iBAAiB;IAEpD,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAMZ,UAAU,IAAI,OAAO,GAAG,UAAU,GAAG,aAAa;IAQlD,WAAW,IAAI,OAAO;IAItB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAOzC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAOxC,QAAQ,IAAI,OAAO;IAOnB,oGAAoG;IACpG,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IAa3C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAOnE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAOlE,QAAQ,IAAI,OAAO;IAQnB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,OAAO;IAO9C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAItD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI1D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIxD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKxC,gHAAgH;IAChH,OAAO,CAAC,IAAI;IASZ;;;OAGG;IACH,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,cAAc;CAOvB"}
|