rip-lang 3.16.0 → 3.16.2
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 +3 -4
- package/bin/rip +201 -18
- package/bin/rip-schema +175 -0
- package/docs/AGENTS.md +1 -1
- package/docs/RIP-APP.md +200 -19
- package/docs/RIP-DUCKDB.md +64 -1
- package/docs/RIP-INTRO.md +4 -4
- package/docs/RIP-LANG.md +36 -38
- package/docs/RIP-SCHEMA.md +1204 -364
- package/docs/RIP-TYPES.md +74 -103
- package/docs/demo/README.md +4 -3
- package/docs/dist/rip.js +4195 -966
- package/docs/dist/rip.min.js +1161 -284
- package/docs/dist/rip.min.js.br +0 -0
- package/docs/example/index.json +7 -7
- package/docs/example/index.json.br +0 -0
- package/docs/extensions/vscode/print/print-1.0.14.vsix +0 -0
- package/docs/extensions/vscode/print/print-latest.vsix +0 -0
- package/docs/extensions/vscode/rip/index.html +2 -1
- package/docs/extensions/vscode/rip/rip-0.5.15.vsix +0 -0
- package/docs/extensions/vscode/rip/rip-latest.vsix +0 -0
- package/docs/extensions/vscode/rip/vscode-rip-0.6.0.vsix +0 -0
- package/docs/index.html +1 -1
- package/docs/ui/bundle.json +55 -55
- package/docs/ui/bundle.json.br +0 -0
- package/docs/ui/hljs-rip.js +1 -1
- package/docs/ui/index.html +1 -1
- package/package.json +15 -7
- package/rip-loader.js +59 -2
- package/src/AGENTS.md +43 -12
- package/src/browser.js +52 -11
- package/src/compiler.js +538 -80
- package/src/components.js +488 -48
- package/src/dts.js +80 -50
- package/src/grammar/README.md +29 -170
- package/src/grammar/grammar.rip +17 -12
- package/src/grammar/solar.rip +4 -17
- package/src/lexer.js +82 -32
- package/src/parser.js +229 -229
- package/src/schema/dts.js +328 -54
- package/src/schema/loader-server.js +2 -1
- package/src/schema/runtime-browser-stubs.js +20 -9
- package/src/schema/runtime-ddl.js +161 -44
- package/src/schema/runtime-migrate.js +681 -0
- package/src/schema/runtime-orm.js +698 -54
- package/src/schema/runtime-validate.js +808 -24
- package/src/schema/runtime.generated.js +2395 -135
- package/src/schema/schema.js +1054 -94
- package/src/typecheck.js +1610 -127
- package/src/types.js +90 -6
- package/src/grammar/lunar.rip +0 -2412
- /package/docs/demo/{components → routes}/_layout.rip +0 -0
- /package/docs/demo/{components → routes}/about.rip +0 -0
- /package/docs/demo/{components → routes}/card.rip +0 -0
- /package/docs/demo/{components → routes}/counter.rip +0 -0
- /package/docs/demo/{components → routes}/index.rip +0 -0
- /package/docs/demo/{components → routes}/todos.rip +0 -0
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var{defineProperty:
|
|
1
|
+
(()=>{var{defineProperty:X2,getOwnPropertyNames:a5,getOwnPropertyDescriptor:r5}=Object,s5=Object.prototype.hasOwnProperty;function f5(e){return this[e]}var c5=(e)=>{var u=(q3??=new WeakMap).get(e),t;if(u)return u;if(u=X2({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var l of a5(e))if(!s5.call(u,l))X2(u,l,{get:f5.bind(e,l),enumerable:!(t=r5(e,l))||t.enumerable})}return q3.set(e,u),u},q3;var o5=(e)=>e;function h5(e,u){this[e]=o5.bind(null,u)}var g3=(e,u)=>{for(var t in u)X2(e,t,{get:u[t],enumerable:!0,configurable:!0,set:h5.bind(u,t)})};var K6={};g3(K6,{rip:()=>R4,processRipScripts:()=>b4,parser:()=>g1,importRip:()=>k1,getStdlibCode:()=>u2,getReactiveRuntime:()=>m2,getComponentRuntime:()=>y2,formatSExpr:()=>K1,formatErrorHTML:()=>t3,formatError:()=>x1,compileToJS:()=>Q1,compile:()=>H2,VERSION:()=>m4,RipError:()=>d1,Lexer:()=>W1,Compiler:()=>w2,CodeEmitter:()=>A1,BUILD_DATE:()=>y4});var F3=`
|
|
2
2
|
// ---- Rip Schema Runtime ----------------------------------------------------
|
|
3
3
|
// Four layers, lazy compilation:
|
|
4
4
|
// 1 (descriptor) object passed to __schema({...}). Raw metadata.
|
|
@@ -28,23 +28,59 @@ var { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = (function(
|
|
|
28
28
|
return globalThis.__ripSchema;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
// __schemaSetAdapter
|
|
33
|
-
//
|
|
31
|
+
`,$3=`
|
|
32
|
+
// __schemaSetAdapter / __schemaTransaction are server/migration-only.
|
|
33
|
+
// In validate mode they don't exist (browser mode stubs transaction);
|
|
34
|
+
// export undefined / throwing slots so destructure works everywhere.
|
|
34
35
|
const __schemaSetAdapterExport = typeof __schemaSetAdapter !== 'undefined'
|
|
35
36
|
? __schemaSetAdapter
|
|
36
37
|
: undefined;
|
|
38
|
+
const __schemaTransactionExport = typeof __schemaTransaction !== 'undefined'
|
|
39
|
+
? __schemaTransaction
|
|
40
|
+
: function() {
|
|
41
|
+
throw new Error('schema.transaction() requires the server schema runtime (validate-only runtime loaded).');
|
|
42
|
+
};
|
|
43
|
+
// Migration surface is migration-mode-only; export throwing slots in
|
|
44
|
+
// other modes so the namespace shape is stable everywhere.
|
|
45
|
+
const __schemaMigrationStub = (api) => function() {
|
|
46
|
+
throw new Error('schema.' + api + '() requires the migration schema runtime (CLI / rip schema); it is not part of the ' +
|
|
47
|
+
'validate/browser/server runtime modes.');
|
|
48
|
+
};
|
|
49
|
+
// User-facing namespace: schema.transaction! -> ... in Rip source
|
|
50
|
+
// resolves through this object (installed as a global alongside the
|
|
51
|
+
// other Rip stdlib globals; ??= keeps user overrides intact).
|
|
52
|
+
const __schemaConnectExport = typeof __schemaConnect !== 'undefined'
|
|
53
|
+
? __schemaConnect
|
|
54
|
+
: function() {
|
|
55
|
+
throw new Error('schema.connect() requires the server schema runtime (validate/browser-only runtime loaded).');
|
|
56
|
+
};
|
|
57
|
+
const schemaNamespace = {
|
|
58
|
+
transaction: __schemaTransactionExport,
|
|
59
|
+
connect: __schemaConnectExport,
|
|
60
|
+
registerCoercer: __schemaRegisterCoercer,
|
|
61
|
+
plan: typeof __schemaPlan !== 'undefined' ? __schemaPlan : __schemaMigrationStub('plan'),
|
|
62
|
+
status: typeof __schemaStatus !== 'undefined' ? __schemaStatus : __schemaMigrationStub('status'),
|
|
63
|
+
make: typeof __schemaMake !== 'undefined' ? __schemaMake : __schemaMigrationStub('make'),
|
|
64
|
+
migrate: typeof __schemaMigrate !== 'undefined' ? __schemaMigrate : __schemaMigrationStub('migrate'),
|
|
65
|
+
introspect: typeof __schemaIntrospect !== 'undefined' ? __schemaIntrospect : __schemaMigrationStub('introspect'),
|
|
66
|
+
};
|
|
37
67
|
const exports = {
|
|
38
68
|
__schema, SchemaError, __SchemaRegistry,
|
|
39
69
|
__schemaSetAdapter: __schemaSetAdapterExport,
|
|
70
|
+
__schemaTransaction: __schemaTransactionExport,
|
|
71
|
+
__schemaRegisterCoercer,
|
|
72
|
+
schema: schemaNamespace,
|
|
40
73
|
__version: 1,
|
|
41
74
|
};
|
|
42
|
-
if (typeof globalThis !== 'undefined')
|
|
75
|
+
if (typeof globalThis !== 'undefined') {
|
|
76
|
+
globalThis.__ripSchema = exports;
|
|
77
|
+
globalThis.schema ??= schemaNamespace;
|
|
78
|
+
}
|
|
43
79
|
return exports;
|
|
44
80
|
})();
|
|
45
81
|
|
|
46
82
|
// === End Schema Runtime ===
|
|
47
|
-
`,
|
|
83
|
+
`,B2=`class SchemaError extends Error {
|
|
48
84
|
constructor(issues, schemaName, schemaKind) {
|
|
49
85
|
super(__schemaFormatIssues(issues, schemaName));
|
|
50
86
|
this.name = 'SchemaError';
|
|
@@ -61,11 +97,20 @@ function __schemaFormatIssues(issues, name) {
|
|
|
61
97
|
}
|
|
62
98
|
|
|
63
99
|
const __SCHEMA_RESERVED_STATIC = new Set([
|
|
64
|
-
'parse','
|
|
100
|
+
'parse','array','safe','ok','parseAsync','safeAsync','okAsync','toJSONSchema',
|
|
101
|
+
'find','findMany','where','all','first','count','create','toSQL',
|
|
102
|
+
'includes','upsert','insertMany','updateAll','deleteAll','withDeleted','onlyDeleted',
|
|
103
|
+
'unscoped',
|
|
104
|
+
]);
|
|
105
|
+
// Names a @scope may not take: the model statics above plus the
|
|
106
|
+
// builder-only chain methods — scopes install on both surfaces.
|
|
107
|
+
const __SCHEMA_SCOPE_RESERVED = new Set([
|
|
108
|
+
...__SCHEMA_RESERVED_STATIC,
|
|
109
|
+
'limit','offset','order','orderBy',
|
|
65
110
|
]);
|
|
66
111
|
const __SCHEMA_RESERVED_INSTANCE = new Set([
|
|
67
|
-
'save','destroy','reload','ok','errors','toJSON','savedChanges','markDirty',
|
|
68
|
-
'_saving',
|
|
112
|
+
'save','destroy','restore','reload','ok','errors','toJSON','savedChanges','markDirty',
|
|
113
|
+
'_saving','_relMemo',
|
|
69
114
|
]);
|
|
70
115
|
// Implicit columns owned by directive-driven runtime behavior. Declaring
|
|
71
116
|
// them as user fields would either shadow the runtime API (savedChanges /
|
|
@@ -102,6 +147,64 @@ function __schemaCheckValue(v, typeName) {
|
|
|
102
147
|
return check ? check(v) : true;
|
|
103
148
|
}
|
|
104
149
|
|
|
150
|
+
// Strict coercion tables for the \`~type\` marker — "coerce, then
|
|
151
|
+
// validate". Deliberately narrow: \`~integer\` rejects "12.5" and NaN,
|
|
152
|
+
// \`~boolean\` accepts exactly six tokens, \`~date\` accepts ISO-8601
|
|
153
|
+
// strings and finite epoch numbers. A failed coercion is
|
|
154
|
+
// {error: 'coerce'}, distinct from {error: 'type'} — the value LOOKED
|
|
155
|
+
// like wire data but didn't convert, which is a different user mistake
|
|
156
|
+
// than sending the wrong shape entirely.
|
|
157
|
+
const __SCHEMA_COERCERS = {
|
|
158
|
+
integer(v) {
|
|
159
|
+
if (typeof v === 'number') return Number.isInteger(v) ? { ok: true, value: v } : { ok: false };
|
|
160
|
+
if (typeof v === 'string' && /^[+-]?\\d+$/.test(v.trim())) return { ok: true, value: parseInt(v.trim(), 10) };
|
|
161
|
+
return { ok: false };
|
|
162
|
+
},
|
|
163
|
+
number(v) {
|
|
164
|
+
if (typeof v === 'number') return Number.isNaN(v) ? { ok: false } : { ok: true, value: v };
|
|
165
|
+
if (typeof v === 'string' && /^[+-]?(\\d+\\.?\\d*|\\.\\d+)([eE][+-]?\\d+)?$/.test(v.trim())) {
|
|
166
|
+
return { ok: true, value: Number(v.trim()) };
|
|
167
|
+
}
|
|
168
|
+
return { ok: false };
|
|
169
|
+
},
|
|
170
|
+
boolean(v) {
|
|
171
|
+
if (typeof v === 'boolean') return { ok: true, value: v };
|
|
172
|
+
if (v === 'true' || v === '1' || v === 1) return { ok: true, value: true };
|
|
173
|
+
if (v === 'false' || v === '0' || v === 0) return { ok: true, value: false };
|
|
174
|
+
return { ok: false };
|
|
175
|
+
},
|
|
176
|
+
date(v) {
|
|
177
|
+
if (v instanceof Date) return Number.isNaN(v.getTime()) ? { ok: false } : { ok: true, value: v };
|
|
178
|
+
if (typeof v === 'number' && Number.isFinite(v)) return { ok: true, value: new Date(v) };
|
|
179
|
+
if (typeof v === 'string' && /^\\d{4}-\\d{2}-\\d{2}/.test(v)) {
|
|
180
|
+
const d = new Date(v);
|
|
181
|
+
if (!Number.isNaN(d.getTime())) return { ok: true, value: d };
|
|
182
|
+
}
|
|
183
|
+
return { ok: false };
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
__SCHEMA_COERCERS.datetime = __SCHEMA_COERCERS.date;
|
|
187
|
+
|
|
188
|
+
// Named-coercer registry for the \`~:name\` field syntax. A coercer is a
|
|
189
|
+
// function (wireValue) → coercedValue, where null/undefined/false means
|
|
190
|
+
// "didn't convert" → {error: 'coerce'}. @rip-lang/server registers its
|
|
191
|
+
// entire read() validator vocabulary (id, money, ssn, phone, name,
|
|
192
|
+
// date, …) here at module load, so every wire normalizer that works in
|
|
193
|
+
// \`read 'x', 'ssn'\` also works as \`x? ~:ssn\` in a schema. Apps register
|
|
194
|
+
// their own via schema.registerCoercer.
|
|
195
|
+
//
|
|
196
|
+
// opts.raw — pass the value through un-stringified (validators that
|
|
197
|
+
// operate on arrays/objects, e.g. the server's array/hash/json).
|
|
198
|
+
const __schemaNamedCoercers = new Map();
|
|
199
|
+
|
|
200
|
+
function __schemaRegisterCoercer(name, fn, opts) {
|
|
201
|
+
if (typeof name !== 'string' || typeof fn !== 'function') {
|
|
202
|
+
throw new Error('schema.registerCoercer(name, fn, opts?): name string and fn required');
|
|
203
|
+
}
|
|
204
|
+
__schemaNamedCoercers.set(name, { fn, raw: opts?.raw === true });
|
|
205
|
+
return fn;
|
|
206
|
+
}
|
|
207
|
+
|
|
105
208
|
function __schemaValidateValue(v, typeName) {
|
|
106
209
|
const prim = __schemaTypes[typeName];
|
|
107
210
|
if (prim) {
|
|
@@ -116,6 +219,12 @@ function __schemaValidateValue(v, typeName) {
|
|
|
116
219
|
if (subDef.kind === 'mixin') {
|
|
117
220
|
return [{field: '', error: 'type', message: ':mixin ' + typeName + ' is not usable as a field type'}];
|
|
118
221
|
}
|
|
222
|
+
if (subDef.kind === 'union') {
|
|
223
|
+
const r = subDef._unionResolve(v);
|
|
224
|
+
if (r.issue) return [r.issue];
|
|
225
|
+
const memberErrs = r.def._validateFields(v, true);
|
|
226
|
+
return memberErrs.length ? memberErrs : null;
|
|
227
|
+
}
|
|
119
228
|
if (v === null || typeof v !== 'object' || Array.isArray(v)) {
|
|
120
229
|
return [{field: '', error: 'type', message: 'must be a ' + typeName + ' object'}];
|
|
121
230
|
}
|
|
@@ -189,6 +298,21 @@ function __schemaSnapshot(norm, inst) {
|
|
|
189
298
|
return snap;
|
|
190
299
|
}
|
|
191
300
|
|
|
301
|
+
// Relation memo — caches resolved relation values per instance under
|
|
302
|
+
// the accessor name. Lazily created and non-enumerable so it never
|
|
303
|
+
// shows up in Object.keys / JSON.stringify. Written by the relation
|
|
304
|
+
// accessors (on first resolve) and by the eager-loading preloader
|
|
305
|
+
// (.includes), read by the accessors.
|
|
306
|
+
function __schemaRelMemoSet(inst, acc, v) {
|
|
307
|
+
if (!inst._relMemo) {
|
|
308
|
+
Object.defineProperty(inst, '_relMemo', {
|
|
309
|
+
value: new Map(), enumerable: false, writable: false, configurable: true,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
inst._relMemo.set(acc, v);
|
|
313
|
+
return v;
|
|
314
|
+
}
|
|
315
|
+
|
|
192
316
|
// SameValue-Zero: like ===, except NaN equals NaN. Used by the dirty
|
|
193
317
|
// check so a persisted NaN doesn't trigger a wasted UPDATE on every
|
|
194
318
|
// save. Distinguishes from Object.is by treating +0/-0 as equal, which
|
|
@@ -197,17 +321,74 @@ function __schemaSameValue(a, b) {
|
|
|
197
321
|
return a === b || (a !== a && b !== b);
|
|
198
322
|
}
|
|
199
323
|
|
|
324
|
+
// Structural signature of a declaration — name-shape only, function
|
|
325
|
+
// bodies excluded. Two registrations with the same signature are the
|
|
326
|
+
// same declaration arriving twice (double import via symlinked paths,
|
|
327
|
+
// re-eval of an unchanged module) and rebind silently. Different
|
|
328
|
+
// signatures under the same name are a real collision and throw,
|
|
329
|
+
// unless \`__SchemaRegistry.replace\` is set (dev/HMR semantics).
|
|
330
|
+
function __schemaSignature(def) {
|
|
331
|
+
// Constraints may hold RegExp values; JSON.stringify would erase them
|
|
332
|
+
// to {} and miss a real difference, so stringify them explicitly.
|
|
333
|
+
const safe = (v) => JSON.stringify(v ?? null, (k, x) =>
|
|
334
|
+
x instanceof RegExp ? String(x) : (typeof x === 'function' ? '<fn>' : x));
|
|
335
|
+
const parts = [def.kind];
|
|
336
|
+
for (const e of def._desc.entries || []) {
|
|
337
|
+
switch (e.tag) {
|
|
338
|
+
case 'field':
|
|
339
|
+
parts.push('f:' + e.name + ':' + (e.typeName || '') +
|
|
340
|
+
(e.array ? '[]' : '') + ':' + (e.modifiers || []).join('') +
|
|
341
|
+
(e.literals ? ':' + e.literals.join(',') : '') +
|
|
342
|
+
':' + safe(e.constraints) + ':' + safe(e.attrs) + (e.coerce ? ':~' + (e.coercer || '') : '') +
|
|
343
|
+
(e.transform ? ':t' : ''));
|
|
344
|
+
break;
|
|
345
|
+
case 'enum-member':
|
|
346
|
+
parts.push('e:' + e.name + '=' + String(e.value));
|
|
347
|
+
break;
|
|
348
|
+
case 'directive':
|
|
349
|
+
parts.push('d:' + e.name + ':' + safe(e.args));
|
|
350
|
+
break;
|
|
351
|
+
case 'ensure':
|
|
352
|
+
parts.push('n:' + (e.message || ''));
|
|
353
|
+
break;
|
|
354
|
+
default:
|
|
355
|
+
// method / computed / derived / hook — name identity only.
|
|
356
|
+
parts.push(e.tag + ':' + (e.name || ''));
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return parts.join('|');
|
|
360
|
+
}
|
|
361
|
+
|
|
200
362
|
const __SchemaRegistry = {
|
|
201
363
|
_entries: new Map(),
|
|
364
|
+
// Dev/HMR escape hatch: when true, re-registering a name rebinds
|
|
365
|
+
// unconditionally (pre-hardening "last loaded wins" semantics). Dev
|
|
366
|
+
// servers and test harnesses set it; production code should not.
|
|
367
|
+
replace: false,
|
|
202
368
|
register(def) {
|
|
203
369
|
// Named schemas of any kind land here. Relations look up :model,
|
|
204
370
|
// @mixin Name looks up :mixin. Algebra (.extend etc.) accepts :shape
|
|
205
371
|
// and derived shapes. Kind is checked at lookup time.
|
|
206
372
|
if (!def.name) return;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
373
|
+
const existing = this._entries.get(def.name);
|
|
374
|
+
if (existing && existing.def !== def && !this.replace) {
|
|
375
|
+
// Identical declarations (same structural signature) rebind
|
|
376
|
+
// silently — the same module arriving twice is not a conflict.
|
|
377
|
+
// Anything else is the "two different models, one name" footgun:
|
|
378
|
+
// relation / @mixin resolution is name-keyed and app-global, so
|
|
379
|
+
// silently letting the last one win corrupts resolution. Throw.
|
|
380
|
+
if (__schemaSignature(existing.def) !== __schemaSignature(def)) {
|
|
381
|
+
throw new SchemaError(
|
|
382
|
+
[{
|
|
383
|
+
field: def.name, error: 'collision',
|
|
384
|
+
message: "schema name '" + def.name + "' is already registered with a different definition. " +
|
|
385
|
+
"Schema names are app-global (they resolve relations and @mixin references), so two different " +
|
|
386
|
+
"schemas cannot share one name. Rename one of them — or, for dev/HMR reload semantics, set " +
|
|
387
|
+
"__SchemaRegistry.replace = true before re-evaluating modules.",
|
|
388
|
+
}],
|
|
389
|
+
def.name, def.kind);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
211
392
|
this._entries.set(def.name, { def, kind: def.kind });
|
|
212
393
|
},
|
|
213
394
|
get(name) {
|
|
@@ -220,6 +401,24 @@ const __SchemaRegistry = {
|
|
|
220
401
|
},
|
|
221
402
|
has(name) { return this._entries.has(name); },
|
|
222
403
|
reset() { this._entries.clear(); },
|
|
404
|
+
// Run \`fn\` against a fresh, empty registry; restore the parent
|
|
405
|
+
// registry afterward (success, throw, or async rejection). Replaces
|
|
406
|
+
// ad-hoc reset() in tests and makes schema-declaring test blocks
|
|
407
|
+
// safe to run without leaking registrations into each other.
|
|
408
|
+
scope(fn) {
|
|
409
|
+
const saved = this._entries;
|
|
410
|
+
this._entries = new Map();
|
|
411
|
+
const restore = () => { this._entries = saved; };
|
|
412
|
+
try {
|
|
413
|
+
const r = fn();
|
|
414
|
+
if (r && typeof r.then === 'function') return r.finally(restore);
|
|
415
|
+
restore();
|
|
416
|
+
return r;
|
|
417
|
+
} catch (e) {
|
|
418
|
+
restore();
|
|
419
|
+
throw e;
|
|
420
|
+
}
|
|
421
|
+
},
|
|
223
422
|
};
|
|
224
423
|
|
|
225
424
|
class __SchemaDef {
|
|
@@ -230,6 +429,25 @@ class __SchemaDef {
|
|
|
230
429
|
this._norm = null;
|
|
231
430
|
this._klass = null;
|
|
232
431
|
this._sourceModel = null;
|
|
432
|
+
this._unionPlanCache = null;
|
|
433
|
+
// Per-schema adapter (\`schema :model, on: analytics\`). null → the
|
|
434
|
+
// process-global adapter. Resolved per ORM call by the orm fragment.
|
|
435
|
+
this._adapter = desc.adapter || null;
|
|
436
|
+
// Install @scope statics eagerly so \`User.active()\` works as the
|
|
437
|
+
// very first call on the model (normalization hasn't run yet at
|
|
438
|
+
// that point; the scope invocation itself triggers it, which also
|
|
439
|
+
// fires the duplicate / reserved-name collision checks). Prototype
|
|
440
|
+
// methods win on name conflicts (\`in\` sees the prototype chain),
|
|
441
|
+
// and normalize rejects those names anyway.
|
|
442
|
+
for (const e of desc.entries || []) {
|
|
443
|
+
if (e.tag !== 'scope' || (e.name in this)) continue;
|
|
444
|
+
const self = this;
|
|
445
|
+
const sfn = e.fn;
|
|
446
|
+
Object.defineProperty(this, e.name, {
|
|
447
|
+
enumerable: false, configurable: true,
|
|
448
|
+
value: function(...args) { return __schemaInvokeScope(self, null, sfn, args); },
|
|
449
|
+
});
|
|
450
|
+
}
|
|
233
451
|
}
|
|
234
452
|
|
|
235
453
|
_normalize() {
|
|
@@ -244,6 +462,8 @@ class __SchemaDef {
|
|
|
244
462
|
const enumMembers = new Map();
|
|
245
463
|
const relations = new Map();
|
|
246
464
|
const ensures = [];
|
|
465
|
+
const scopes = new Map();
|
|
466
|
+
let defaultScope = null;
|
|
247
467
|
let timestamps = false;
|
|
248
468
|
let softDelete = false;
|
|
249
469
|
|
|
@@ -283,12 +503,15 @@ class __SchemaDef {
|
|
|
283
503
|
fields.set(e.name, {
|
|
284
504
|
name: e.name,
|
|
285
505
|
required: e.modifiers.includes('!'),
|
|
286
|
-
unique: e.
|
|
506
|
+
unique: e.unique === true,
|
|
287
507
|
optional: e.modifiers.includes('?'),
|
|
288
508
|
typeName: e.typeName,
|
|
289
509
|
literals: e.literals || null,
|
|
290
510
|
array: e.array === true,
|
|
511
|
+
coerce: e.coerce === true,
|
|
512
|
+
coercer: e.coercer || null,
|
|
291
513
|
constraints: e.constraints || null,
|
|
514
|
+
attrs: e.attrs || null,
|
|
292
515
|
transform: e.transform || null,
|
|
293
516
|
});
|
|
294
517
|
break;
|
|
@@ -330,8 +553,32 @@ class __SchemaDef {
|
|
|
330
553
|
case 'ensure':
|
|
331
554
|
// @ensure entries are schema-level invariants (cross-field
|
|
332
555
|
// predicates). Declaration order is preserved so diagnostics
|
|
333
|
-
// come out in the order authored.
|
|
334
|
-
|
|
556
|
+
// come out in the order authored. \`field\` attributes the
|
|
557
|
+
// failure to a specific input; \`async\` marks an @ensure!
|
|
558
|
+
// refinement (the schema becomes async-validating).
|
|
559
|
+
ensures.push({
|
|
560
|
+
message: e.message,
|
|
561
|
+
field: e.field || '',
|
|
562
|
+
async: e.async === true,
|
|
563
|
+
fn: e.fn,
|
|
564
|
+
});
|
|
565
|
+
break;
|
|
566
|
+
case 'scope':
|
|
567
|
+
// Scopes live in the STATIC namespace (model + builder), not
|
|
568
|
+
// the instance namespace — a field \`active\` and a scope
|
|
569
|
+
// \`:active\` coexist by design. Collisions are checked against
|
|
570
|
+
// other scopes and the reserved static/builder names.
|
|
571
|
+
if (scopes.has(e.name)) collision(e.name, 'scope');
|
|
572
|
+
if (__SCHEMA_SCOPE_RESERVED.has(e.name)) collision(e.name, 'reserved query API name');
|
|
573
|
+
scopes.set(e.name, e.fn);
|
|
574
|
+
break;
|
|
575
|
+
case 'defaultScope':
|
|
576
|
+
if (defaultScope) {
|
|
577
|
+
throw new SchemaError(
|
|
578
|
+
[{field: '', error: 'collision', message: 'only one @defaultScope per model'}],
|
|
579
|
+
this.name, this.kind);
|
|
580
|
+
}
|
|
581
|
+
defaultScope = e.fn;
|
|
335
582
|
break;
|
|
336
583
|
}
|
|
337
584
|
}
|
|
@@ -351,14 +598,98 @@ class __SchemaDef {
|
|
|
351
598
|
const primaryKey = 'id';
|
|
352
599
|
const tableName = this.kind === 'model' ? __schemaTableName(this.name) : null;
|
|
353
600
|
|
|
601
|
+
// \`@tableWas old_name\` — table-rename annotation for the differ.
|
|
602
|
+
let tableWas = null;
|
|
603
|
+
for (const d of directives) {
|
|
604
|
+
if (d.name === 'tableWas' && d.args?.[0]?.name) tableWas = d.args[0].name;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
// :union metadata — discriminator field + constituent names.
|
|
608
|
+
let unionOn = null;
|
|
609
|
+
const unionMembers = [];
|
|
610
|
+
if (this.kind === 'union') {
|
|
611
|
+
for (const d of directives) {
|
|
612
|
+
if (d.name === 'on' && d.args?.[0]?.field) unionOn = d.args[0].field;
|
|
613
|
+
}
|
|
614
|
+
for (const e of this._desc.entries) {
|
|
615
|
+
if (e.tag === 'union-member') unionMembers.push(e.name);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
|
|
354
619
|
this._norm = {
|
|
355
620
|
fields, methods, computed, derived, hooks, directives, enumMembers, relations,
|
|
356
|
-
ensures,
|
|
357
|
-
|
|
621
|
+
ensures, scopes, defaultScope,
|
|
622
|
+
hasAsyncEnsures: ensures.some(r => r.async),
|
|
623
|
+
timestamps, softDelete, primaryKey, tableName, tableWas,
|
|
624
|
+
unionOn, unionMembers,
|
|
358
625
|
};
|
|
359
626
|
return this._norm;
|
|
360
627
|
}
|
|
361
628
|
|
|
629
|
+
// ---- :union dispatch -------------------------------------------------------
|
|
630
|
+
//
|
|
631
|
+
// Built lazily on first parse (consistent with registry resolution):
|
|
632
|
+
// resolves every constituent from the registry, reads its declared
|
|
633
|
+
// discriminator literals, and compiles a value → constituent map for
|
|
634
|
+
// O(1) dispatch. Collisions and shapeless discriminators fail here
|
|
635
|
+
// with the constituent names in the message.
|
|
636
|
+
|
|
637
|
+
_unionPlan() {
|
|
638
|
+
if (this._unionPlanCache) return this._unionPlanCache;
|
|
639
|
+
const norm = this._normalize();
|
|
640
|
+
const disc = norm.unionOn;
|
|
641
|
+
if (this.kind !== 'union' || !disc) {
|
|
642
|
+
throw new Error("schema: '" + (this.name || 'anon') + "' is not a :union");
|
|
643
|
+
}
|
|
644
|
+
const map = new Map();
|
|
645
|
+
const members = [];
|
|
646
|
+
for (const name of norm.unionMembers) {
|
|
647
|
+
const def = __SchemaRegistry.get(name);
|
|
648
|
+
if (!def) {
|
|
649
|
+
throw new SchemaError(
|
|
650
|
+
[{field: '', error: 'union', message: 'unknown union constituent: ' + name + ' (import the file that declares it)'}],
|
|
651
|
+
this.name, this.kind);
|
|
652
|
+
}
|
|
653
|
+
members.push(def);
|
|
654
|
+
const f = def._normalize().fields.get(disc);
|
|
655
|
+
if (!f || f.typeName !== 'literal-union' || !f.literals?.length) {
|
|
656
|
+
throw new SchemaError(
|
|
657
|
+
[{field: disc, error: 'union', message: name + " must declare '" + disc +
|
|
658
|
+
"' as a string-literal type (e.g. " + disc + '! "click") to join union ' + (this.name || '')}],
|
|
659
|
+
this.name, this.kind);
|
|
660
|
+
}
|
|
661
|
+
for (const lit of f.literals) {
|
|
662
|
+
if (map.has(lit)) {
|
|
663
|
+
throw new SchemaError(
|
|
664
|
+
[{field: disc, error: 'union', message: 'duplicate discriminator value ' + JSON.stringify(lit) +
|
|
665
|
+
' in ' + (map.get(lit).name || 'anon') + ' and ' + name}],
|
|
666
|
+
this.name, this.kind);
|
|
667
|
+
}
|
|
668
|
+
map.set(lit, def);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
const plan = {
|
|
672
|
+
disc, map,
|
|
673
|
+
expected: [...map.keys()].join(' | '),
|
|
674
|
+
hasAsyncEnsures: members.some(d => d._normalize().hasAsyncEnsures),
|
|
675
|
+
};
|
|
676
|
+
this._unionPlanCache = plan;
|
|
677
|
+
return plan;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
// Resolve a raw value to its constituent def, or produce the issue.
|
|
681
|
+
_unionResolve(data) {
|
|
682
|
+
const plan = this._unionPlan();
|
|
683
|
+
if (data === null || typeof data !== 'object' || Array.isArray(data)) {
|
|
684
|
+
return { issue: {field: plan.disc, error: 'union', message: 'expected an object with ' + plan.disc} };
|
|
685
|
+
}
|
|
686
|
+
const def = plan.map.get(data[plan.disc]);
|
|
687
|
+
if (!def) {
|
|
688
|
+
return { issue: {field: plan.disc, error: 'union', message: 'expected one of ' + plan.expected} };
|
|
689
|
+
}
|
|
690
|
+
return { def };
|
|
691
|
+
}
|
|
692
|
+
|
|
362
693
|
// Run eager-derived entries (!>) — one pass, in declaration order.
|
|
363
694
|
//
|
|
364
695
|
// Invariants worth keeping in mind here:
|
|
@@ -416,14 +747,14 @@ class __SchemaDef {
|
|
|
416
747
|
ok = !!r.fn(data);
|
|
417
748
|
} catch (e) {
|
|
418
749
|
errs.push({
|
|
419
|
-
field: '', error: 'ensure',
|
|
750
|
+
field: r.field || '', error: 'ensure',
|
|
420
751
|
message: r.message || e?.message || 'ensure failed',
|
|
421
752
|
});
|
|
422
753
|
continue;
|
|
423
754
|
}
|
|
424
755
|
if (!ok) {
|
|
425
756
|
errs.push({
|
|
426
|
-
field: '', error: 'ensure',
|
|
757
|
+
field: r.field || '', error: 'ensure',
|
|
427
758
|
message: r.message || 'ensure failed',
|
|
428
759
|
});
|
|
429
760
|
}
|
|
@@ -431,6 +762,53 @@ class __SchemaDef {
|
|
|
431
762
|
return errs;
|
|
432
763
|
}
|
|
433
764
|
|
|
765
|
+
// Async-aware refinement pass for parseAsync/safeAsync/okAsync. Sync
|
|
766
|
+
// refinements run first (cheap before expensive); async refinements
|
|
767
|
+
// then run CONCURRENTLY (Promise.all) — preserving the no-short-
|
|
768
|
+
// circuit rule. Issues come out in declaration order regardless of
|
|
769
|
+
// completion order. A rejected async predicate counts as failure
|
|
770
|
+
// with the declared message, same as a thrown sync one.
|
|
771
|
+
async _applyEnsuresAsync(data) {
|
|
772
|
+
const norm = this._normalize();
|
|
773
|
+
if (!norm.ensures.length) return [];
|
|
774
|
+
const results = [];
|
|
775
|
+
const pending = [];
|
|
776
|
+
norm.ensures.forEach((r, idx) => {
|
|
777
|
+
const issue = () => ({
|
|
778
|
+
field: r.field || '', error: 'ensure',
|
|
779
|
+
message: r.message || 'ensure failed',
|
|
780
|
+
});
|
|
781
|
+
if (r.async) {
|
|
782
|
+
pending.push((async () => {
|
|
783
|
+
let ok = false;
|
|
784
|
+
try { ok = !!(await r.fn(data)); } catch { ok = false; }
|
|
785
|
+
if (!ok) results.push({ idx, issue: issue() });
|
|
786
|
+
})());
|
|
787
|
+
} else {
|
|
788
|
+
let ok = false;
|
|
789
|
+
try { ok = !!r.fn(data); } catch { ok = false; }
|
|
790
|
+
if (!ok) results.push({ idx, issue: issue() });
|
|
791
|
+
}
|
|
792
|
+
});
|
|
793
|
+
await Promise.all(pending);
|
|
794
|
+
results.sort((a, b) => a.idx - b.idx);
|
|
795
|
+
return results.map(r => r.issue);
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
// A schema with ≥1 @ensure! is async-validating: the sync entry
|
|
799
|
+
// points refuse loudly rather than sometimes-returning a promise.
|
|
800
|
+
_assertSyncValidatable(api) {
|
|
801
|
+
const async = this.kind === 'union'
|
|
802
|
+
? this._unionPlan().hasAsyncEnsures
|
|
803
|
+
: this._normalize().hasAsyncEnsures;
|
|
804
|
+
if (async) {
|
|
805
|
+
throw new Error(
|
|
806
|
+
"schema '" + (this.name || 'anon') + "' has async refinements (@ensure!" +
|
|
807
|
+
(this.kind === 'union' ? ' in a constituent' : '') + "); " +
|
|
808
|
+
'.' + api + '() is sync. Use parseAsync!/safeAsync!/okAsync! instead.');
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
|
|
434
812
|
_getClass() {
|
|
435
813
|
if (this._klass) return this._klass;
|
|
436
814
|
const norm = this._normalize();
|
|
@@ -478,12 +856,23 @@ class __SchemaDef {
|
|
|
478
856
|
});
|
|
479
857
|
}
|
|
480
858
|
|
|
481
|
-
// Relation methods: user.organization(). Accepts
|
|
482
|
-
// a promise to a target-model instance (or array
|
|
859
|
+
// Relation methods: user.organization(). Accepts an optional opts
|
|
860
|
+
// object; returns a promise to a target-model instance (or array
|
|
861
|
+
// for has_many). Results memoize per instance — the second call
|
|
862
|
+
// resolves from cache with no query, and eager loading (.includes)
|
|
863
|
+
// fills the same memo so preloaded relations are free. Pass
|
|
864
|
+
// {reload: true} to bust the memo and re-query.
|
|
483
865
|
for (const [acc, rel] of norm.relations) {
|
|
484
866
|
Object.defineProperty(klass.prototype, acc, {
|
|
485
867
|
enumerable: false, configurable: true,
|
|
486
|
-
value: async function() {
|
|
868
|
+
value: async function(opts) {
|
|
869
|
+
if (!(opts && opts.reload === true) && this._relMemo && this._relMemo.has(acc)) {
|
|
870
|
+
return this._relMemo.get(acc);
|
|
871
|
+
}
|
|
872
|
+
const v = await __schemaResolveRelation(def, this, rel);
|
|
873
|
+
__schemaRelMemoSet(this, acc, v);
|
|
874
|
+
return v;
|
|
875
|
+
},
|
|
487
876
|
});
|
|
488
877
|
}
|
|
489
878
|
|
|
@@ -493,9 +882,17 @@ class __SchemaDef {
|
|
|
493
882
|
enumerable: false, configurable: true, writable: true,
|
|
494
883
|
value: async function() { return __schemaSave(def, this); },
|
|
495
884
|
});
|
|
885
|
+
// destroy() honors @softDelete (UPDATE deleted_at) by default;
|
|
886
|
+
// destroy(hard: true) forces a real DELETE. Hooks fire either way.
|
|
496
887
|
Object.defineProperty(klass.prototype, 'destroy', {
|
|
497
888
|
enumerable: false, configurable: true, writable: true,
|
|
498
|
-
value: async function() { return __schemaDestroy(def, this); },
|
|
889
|
+
value: async function(opts) { return __schemaDestroy(def, this, opts); },
|
|
890
|
+
});
|
|
891
|
+
// restore() un-deletes a soft-deleted row (deleted_at = NULL).
|
|
892
|
+
// Throws on models without @softDelete.
|
|
893
|
+
Object.defineProperty(klass.prototype, 'restore', {
|
|
894
|
+
enumerable: false, configurable: true, writable: true,
|
|
895
|
+
value: async function() { return __schemaRestore(def, this); },
|
|
499
896
|
});
|
|
500
897
|
Object.defineProperty(klass.prototype, 'ok', {
|
|
501
898
|
enumerable: false, configurable: true, writable: true,
|
|
@@ -613,10 +1010,37 @@ class __SchemaDef {
|
|
|
613
1010
|
return inst;
|
|
614
1011
|
}
|
|
615
1012
|
|
|
616
|
-
|
|
1013
|
+
// Coerce ISO date strings to Date for date/datetime fields. Over JSON a
|
|
1014
|
+
// date is a string, so a value crossing the wire (or any \`.parse\` of
|
|
1015
|
+
// external input) arrives as a string; this lets it validate and be stored
|
|
1016
|
+
// as a Date. Runs on parse/safe only — hydrate gets canonical DB values.
|
|
1017
|
+
_coerceDates(working) {
|
|
1018
|
+
const norm = this._normalize();
|
|
1019
|
+
// Only ISO-shaped strings (\`YYYY-MM-DD\` optionally followed by a time) are
|
|
1020
|
+
// coerced. \`new Date(v)\` is otherwise lax — \`new Date("5")\` is a valid
|
|
1021
|
+
// Date — which would let clearly-bad input slip past a date field as a
|
|
1022
|
+
// bogus Date instead of failing validation. Array-of-date fields coerce
|
|
1023
|
+
// element-wise.
|
|
1024
|
+
const isoShaped = (s) => typeof s === 'string' && /^\\d{4}-\\d{2}-\\d{2}([T ].*)?$/.test(s);
|
|
1025
|
+
const toDate = (s) => { const d = new Date(s); return Number.isNaN(d.getTime()) ? s : d; };
|
|
1026
|
+
for (const [n, f] of norm.fields) {
|
|
1027
|
+
if (f.typeName !== 'date' && f.typeName !== 'datetime') continue;
|
|
1028
|
+
const v = working[n];
|
|
1029
|
+
if (f.array && Array.isArray(v)) {
|
|
1030
|
+
working[n] = v.map(el => isoShaped(el) ? toDate(el) : el);
|
|
1031
|
+
} else if (isoShaped(v)) {
|
|
1032
|
+
working[n] = toDate(v);
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
_validateFields(data, collect, skip) {
|
|
617
1038
|
const norm = this._normalize();
|
|
618
1039
|
const errors = collect ? [] : null;
|
|
619
1040
|
for (const [n, f] of norm.fields) {
|
|
1041
|
+
// Fields whose coercion already failed carry a {error: 'coerce'}
|
|
1042
|
+
// issue; re-checking the uncoerced value would double-report.
|
|
1043
|
+
if (skip && skip.has(n)) continue;
|
|
620
1044
|
const v = data == null ? undefined : data[n];
|
|
621
1045
|
if (v === undefined || v === null) {
|
|
622
1046
|
if (f.required) {
|
|
@@ -718,6 +1142,54 @@ class __SchemaDef {
|
|
|
718
1142
|
return errors;
|
|
719
1143
|
}
|
|
720
1144
|
|
|
1145
|
+
// \`~type\` coercions — part of pipeline step 1 (obtain raw candidate):
|
|
1146
|
+
// the wire value converts through the strict coercion table before
|
|
1147
|
+
// defaults and validation, so range checks see the coerced value.
|
|
1148
|
+
// Failed coercions collect {error: 'coerce'} issues and the field
|
|
1149
|
+
// lands in \`failed\` so per-field validation doesn't double-report
|
|
1150
|
+
// the same problem as a type error. Skipped on hydrate (rows arrive
|
|
1151
|
+
// canonical), like transforms. Mutually exclusive with transforms at
|
|
1152
|
+
// compile time.
|
|
1153
|
+
_applyCoercions(working, failed) {
|
|
1154
|
+
const norm = this._normalize();
|
|
1155
|
+
const errors = [];
|
|
1156
|
+
for (const [n, f] of norm.fields) {
|
|
1157
|
+
if (!f.coerce) continue;
|
|
1158
|
+
const v = working[n];
|
|
1159
|
+
if (v === undefined || v === null) continue;
|
|
1160
|
+
if (f.coercer) {
|
|
1161
|
+
// \`~:name\` — registry lookup. A missing coercer is a CONFIG
|
|
1162
|
+
// error (the package that provides it wasn't loaded), not a
|
|
1163
|
+
// validation failure — fail loud.
|
|
1164
|
+
const entry = __schemaNamedCoercers.get(f.coercer);
|
|
1165
|
+
if (!entry) {
|
|
1166
|
+
throw new Error(
|
|
1167
|
+
"schema: no coercer registered for '~:" + f.coercer + "' (field '" + n + "' on " +
|
|
1168
|
+
(this.name || 'anon') + "). Import '@rip-lang/validate' (browser-safe; registers the " +
|
|
1169
|
+
"whole vocabulary) or register it with schema.registerCoercer('" + f.coercer + "', fn).");
|
|
1170
|
+
}
|
|
1171
|
+
const input = entry.raw ? v : String(v).trim();
|
|
1172
|
+
let out;
|
|
1173
|
+
try { out = entry.fn(input); } catch { out = null; }
|
|
1174
|
+
if (out === null || out === undefined || out === false) {
|
|
1175
|
+
errors.push({field: n, error: 'coerce', message: n + ' is not a valid ' + f.coercer});
|
|
1176
|
+
failed.add(n);
|
|
1177
|
+
} else {
|
|
1178
|
+
working[n] = out;
|
|
1179
|
+
}
|
|
1180
|
+
continue;
|
|
1181
|
+
}
|
|
1182
|
+
const r = __SCHEMA_COERCERS[f.typeName] ? __SCHEMA_COERCERS[f.typeName](v) : { ok: false };
|
|
1183
|
+
if (r.ok) {
|
|
1184
|
+
working[n] = r.value;
|
|
1185
|
+
} else {
|
|
1186
|
+
errors.push({field: n, error: 'coerce', message: n + ' cannot be coerced to ' + f.typeName});
|
|
1187
|
+
failed.add(n);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
return errors;
|
|
1191
|
+
}
|
|
1192
|
+
|
|
721
1193
|
_validateEnum(data, collect) {
|
|
722
1194
|
const norm = this._normalize();
|
|
723
1195
|
for (const [n, v] of norm.enumMembers) {
|
|
@@ -758,16 +1230,27 @@ class __SchemaDef {
|
|
|
758
1230
|
if (this.kind === 'mixin') {
|
|
759
1231
|
throw new Error(":mixin schema '" + (this.name || 'anon') + "' is not instantiable");
|
|
760
1232
|
}
|
|
1233
|
+
if (this.kind === 'union') {
|
|
1234
|
+
const plan = this._unionPlan();
|
|
1235
|
+
if (plan.hasAsyncEnsures) this._assertSyncValidatable('parse');
|
|
1236
|
+
const r = this._unionResolve(data);
|
|
1237
|
+
if (r.issue) throw new SchemaError([r.issue], this.name, this.kind);
|
|
1238
|
+
return r.def.parse(data);
|
|
1239
|
+
}
|
|
761
1240
|
if (this.kind === 'enum') {
|
|
762
1241
|
const errs = this._validateEnum(data, true);
|
|
763
1242
|
if (errs.length) throw new SchemaError(errs, this.name, this.kind);
|
|
764
1243
|
return this._materializeEnum(data);
|
|
765
1244
|
}
|
|
1245
|
+
this._assertSyncValidatable('parse');
|
|
766
1246
|
const raw = data || {};
|
|
767
1247
|
const working = { ...raw };
|
|
1248
|
+
const failed = new Set();
|
|
768
1249
|
const transformErrors = this._applyTransforms(raw, working);
|
|
1250
|
+
const coerceErrors = this._applyCoercions(working, failed);
|
|
769
1251
|
this._applyDefaults(working);
|
|
770
|
-
|
|
1252
|
+
this._coerceDates(working);
|
|
1253
|
+
const errs = transformErrors.concat(coerceErrors, this._validateFields(working, true, failed));
|
|
771
1254
|
if (errs.length) throw new SchemaError(errs, this.name, this.kind);
|
|
772
1255
|
// @ensure runs AFTER per-field validation so predicates can
|
|
773
1256
|
// assume declared fields are typed and defaulted. A field-level
|
|
@@ -780,20 +1263,93 @@ class __SchemaDef {
|
|
|
780
1263
|
return inst;
|
|
781
1264
|
}
|
|
782
1265
|
|
|
1266
|
+
// Array combinator: \`Schema.array\` is a list-of-this schema exposing the
|
|
1267
|
+
// same validation family (parse/safe/ok + async). The common list-endpoint
|
|
1268
|
+
// case is \`Schema.array.parse(api.get!('x').json!())\` → Out[]. A non-array
|
|
1269
|
+
// input fails fast with a descriptive error naming what it got — so passing
|
|
1270
|
+
// an enveloped \`{ items: [...] }\` whole, a typo'd key, or a changed server
|
|
1271
|
+
// contract surfaces clearly at the boundary. Item failures aggregate, each
|
|
1272
|
+
// issue tagged with its \`[index]\` so a bad element is locatable.
|
|
1273
|
+
get array() {
|
|
1274
|
+
const elem = this;
|
|
1275
|
+
const notArray = (data) => {
|
|
1276
|
+
const got = data === null ? 'null'
|
|
1277
|
+
: data === undefined ? 'undefined'
|
|
1278
|
+
: typeof data === 'object' ? ('an object with keys [' + Object.keys(data).join(', ') + ']')
|
|
1279
|
+
: typeof data;
|
|
1280
|
+
return { field: '', error: 'not_array', message: 'expected an array, received ' + got };
|
|
1281
|
+
};
|
|
1282
|
+
const collect = (results) => {
|
|
1283
|
+
const value = [];
|
|
1284
|
+
const errors = [];
|
|
1285
|
+
results.forEach((r, i) => {
|
|
1286
|
+
if (r.ok) value.push(r.value);
|
|
1287
|
+
else for (const e of r.errors) {
|
|
1288
|
+
errors.push({ ...e, field: '[' + i + ']' + (e.field ? '.' + e.field : '') });
|
|
1289
|
+
}
|
|
1290
|
+
});
|
|
1291
|
+
return { value, errors };
|
|
1292
|
+
};
|
|
1293
|
+
return {
|
|
1294
|
+
parse(data) {
|
|
1295
|
+
if (!Array.isArray(data)) throw new SchemaError([notArray(data)], elem.name, elem.kind);
|
|
1296
|
+
const { value, errors } = collect(data.map((x) => elem.safe(x)));
|
|
1297
|
+
if (errors.length) throw new SchemaError(errors, elem.name, elem.kind);
|
|
1298
|
+
return value;
|
|
1299
|
+
},
|
|
1300
|
+
safe(data) {
|
|
1301
|
+
if (!Array.isArray(data)) return { ok: false, value: null, errors: [notArray(data)] };
|
|
1302
|
+
const { value, errors } = collect(data.map((x) => elem.safe(x)));
|
|
1303
|
+
return errors.length ? { ok: false, value: null, errors } : { ok: true, value, errors: null };
|
|
1304
|
+
},
|
|
1305
|
+
ok(data) {
|
|
1306
|
+
return Array.isArray(data) && data.every((x) => elem.ok(x));
|
|
1307
|
+
},
|
|
1308
|
+
async parseAsync(data) {
|
|
1309
|
+
if (!Array.isArray(data)) throw new SchemaError([notArray(data)], elem.name, elem.kind);
|
|
1310
|
+
const { value, errors } = collect(await Promise.all(data.map((x) => elem.safeAsync(x))));
|
|
1311
|
+
if (errors.length) throw new SchemaError(errors, elem.name, elem.kind);
|
|
1312
|
+
return value;
|
|
1313
|
+
},
|
|
1314
|
+
async safeAsync(data) {
|
|
1315
|
+
if (!Array.isArray(data)) return { ok: false, value: null, errors: [notArray(data)] };
|
|
1316
|
+
const { value, errors } = collect(await Promise.all(data.map((x) => elem.safeAsync(x))));
|
|
1317
|
+
return errors.length ? { ok: false, value: null, errors } : { ok: true, value, errors: null };
|
|
1318
|
+
},
|
|
1319
|
+
async okAsync(data) {
|
|
1320
|
+
return Array.isArray(data) && (await Promise.all(data.map((x) => elem.okAsync(x)))).every(Boolean);
|
|
1321
|
+
},
|
|
1322
|
+
toJSONSchema() {
|
|
1323
|
+
return { type: 'array', items: elem.toJSONSchema() };
|
|
1324
|
+
},
|
|
1325
|
+
};
|
|
1326
|
+
}
|
|
1327
|
+
|
|
783
1328
|
safe(data) {
|
|
784
1329
|
if (this.kind === 'mixin') {
|
|
785
1330
|
return {ok: false, value: null, errors: [{field: '', error: 'mixin', message: 'not instantiable'}]};
|
|
786
1331
|
}
|
|
1332
|
+
if (this.kind === 'union') {
|
|
1333
|
+
const plan = this._unionPlan();
|
|
1334
|
+
if (plan.hasAsyncEnsures) this._assertSyncValidatable('safe');
|
|
1335
|
+
const r = this._unionResolve(data);
|
|
1336
|
+
if (r.issue) return {ok: false, value: null, errors: [r.issue]};
|
|
1337
|
+
return r.def.safe(data);
|
|
1338
|
+
}
|
|
787
1339
|
if (this.kind === 'enum') {
|
|
788
1340
|
const errs = this._validateEnum(data, true);
|
|
789
1341
|
if (errs.length) return {ok: false, value: null, errors: errs};
|
|
790
1342
|
return {ok: true, value: this._materializeEnum(data), errors: null};
|
|
791
1343
|
}
|
|
1344
|
+
this._assertSyncValidatable('safe');
|
|
792
1345
|
const raw = data || {};
|
|
793
1346
|
const working = { ...raw };
|
|
1347
|
+
const failed = new Set();
|
|
794
1348
|
const transformErrors = this._applyTransforms(raw, working);
|
|
1349
|
+
const coerceErrors = this._applyCoercions(working, failed);
|
|
795
1350
|
this._applyDefaults(working);
|
|
796
|
-
|
|
1351
|
+
this._coerceDates(working);
|
|
1352
|
+
const errs = transformErrors.concat(coerceErrors, this._validateFields(working, true, failed));
|
|
797
1353
|
if (errs.length) return {ok: false, value: null, errors: errs};
|
|
798
1354
|
const ensureErrs = this._applyEnsures(working);
|
|
799
1355
|
if (ensureErrs.length) return {ok: false, value: null, errors: ensureErrs};
|
|
@@ -808,17 +1364,89 @@ class __SchemaDef {
|
|
|
808
1364
|
|
|
809
1365
|
ok(data) {
|
|
810
1366
|
if (this.kind === 'mixin') return false;
|
|
1367
|
+
if (this.kind === 'union') {
|
|
1368
|
+
const plan = this._unionPlan();
|
|
1369
|
+
if (plan.hasAsyncEnsures) this._assertSyncValidatable('ok');
|
|
1370
|
+
const r = this._unionResolve(data);
|
|
1371
|
+
return r.issue ? false : r.def.ok(data);
|
|
1372
|
+
}
|
|
811
1373
|
if (this.kind === 'enum') return this._validateEnum(data, false);
|
|
1374
|
+
this._assertSyncValidatable('ok');
|
|
812
1375
|
const raw = data || {};
|
|
813
1376
|
const working = { ...raw };
|
|
1377
|
+
const failed = new Set();
|
|
814
1378
|
const transformErrors = this._applyTransforms(raw, working);
|
|
815
1379
|
if (transformErrors.length) return false;
|
|
1380
|
+
if (this._applyCoercions(working, failed).length) return false;
|
|
816
1381
|
this._applyDefaults(working);
|
|
1382
|
+
this._coerceDates(working);
|
|
817
1383
|
if (!this._validateFields(working, false)) return false;
|
|
818
1384
|
// Per-field validation passed — @ensure predicates are the final gate.
|
|
819
1385
|
return this._applyEnsures(working).length === 0;
|
|
820
1386
|
}
|
|
821
1387
|
|
|
1388
|
+
// Async validation entry points. Work on EVERY schema (sync-only
|
|
1389
|
+
// schemas just resolve immediately); REQUIRED when the schema has
|
|
1390
|
+
// @ensure! refinements. The dammit operator gives the idiomatic
|
|
1391
|
+
// form: \`SignupInput.parseAsync! raw\`.
|
|
1392
|
+
async _runPipelineAsync(data) {
|
|
1393
|
+
const raw = data || {};
|
|
1394
|
+
const working = { ...raw };
|
|
1395
|
+
const failed = new Set();
|
|
1396
|
+
const transformErrors = this._applyTransforms(raw, working);
|
|
1397
|
+
const coerceErrors = this._applyCoercions(working, failed);
|
|
1398
|
+
this._applyDefaults(working);
|
|
1399
|
+
this._coerceDates(working);
|
|
1400
|
+
const errs = transformErrors.concat(coerceErrors, this._validateFields(working, true, failed));
|
|
1401
|
+
if (errs.length) return { errors: errs };
|
|
1402
|
+
const ensureErrs = await this._applyEnsuresAsync(working);
|
|
1403
|
+
if (ensureErrs.length) return { errors: ensureErrs };
|
|
1404
|
+
return { working };
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
async parseAsync(data) {
|
|
1408
|
+
if (this.kind === 'mixin') {
|
|
1409
|
+
throw new Error(":mixin schema '" + (this.name || 'anon') + "' is not instantiable");
|
|
1410
|
+
}
|
|
1411
|
+
if (this.kind === 'union') {
|
|
1412
|
+
const r = this._unionResolve(data);
|
|
1413
|
+
if (r.issue) throw new SchemaError([r.issue], this.name, this.kind);
|
|
1414
|
+
return r.def.parseAsync(data);
|
|
1415
|
+
}
|
|
1416
|
+
if (this.kind === 'enum') return this.parse(data);
|
|
1417
|
+
const r = await this._runPipelineAsync(data);
|
|
1418
|
+
if (r.errors) throw new SchemaError(r.errors, this.name, this.kind);
|
|
1419
|
+
const klass = this._getClass();
|
|
1420
|
+
const inst = new klass(r.working, false);
|
|
1421
|
+
this._applyEagerDerived(inst);
|
|
1422
|
+
return inst;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
async safeAsync(data) {
|
|
1426
|
+
if (this.kind === 'mixin') {
|
|
1427
|
+
return {ok: false, value: null, errors: [{field: '', error: 'mixin', message: 'not instantiable'}]};
|
|
1428
|
+
}
|
|
1429
|
+
if (this.kind === 'union') {
|
|
1430
|
+
const r = this._unionResolve(data);
|
|
1431
|
+
if (r.issue) return {ok: false, value: null, errors: [r.issue]};
|
|
1432
|
+
return r.def.safeAsync(data);
|
|
1433
|
+
}
|
|
1434
|
+
if (this.kind === 'enum') return this.safe(data);
|
|
1435
|
+
const r = await this._runPipelineAsync(data);
|
|
1436
|
+
if (r.errors) return {ok: false, value: null, errors: r.errors};
|
|
1437
|
+
const klass = this._getClass();
|
|
1438
|
+
const inst = new klass(r.working, false);
|
|
1439
|
+
try { this._applyEagerDerived(inst); }
|
|
1440
|
+
catch (e) {
|
|
1441
|
+
return {ok: false, value: null, errors: [{field: '', error: 'derived', message: e?.message || String(e)}]};
|
|
1442
|
+
}
|
|
1443
|
+
return {ok: true, value: inst, errors: null};
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
async okAsync(data) {
|
|
1447
|
+
return (await this.safeAsync(data)).ok;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
822
1450
|
// ---- :model static ORM methods --------------------------------------------
|
|
823
1451
|
|
|
824
1452
|
pick(...keys) {
|
|
@@ -863,6 +1491,9 @@ class __SchemaDef {
|
|
|
863
1491
|
if (!(other instanceof __SchemaDef)) {
|
|
864
1492
|
throw new Error('extend(): argument must be a schema value');
|
|
865
1493
|
}
|
|
1494
|
+
if (other.kind === 'union') {
|
|
1495
|
+
throw new Error('extend(): :union schemas have no fields to merge');
|
|
1496
|
+
}
|
|
866
1497
|
return __schemaDerive(this, (src) => {
|
|
867
1498
|
const merged = new Map(src);
|
|
868
1499
|
const otherFields = other._normalize().fields;
|
|
@@ -877,6 +1508,159 @@ class __SchemaDef {
|
|
|
877
1508
|
}
|
|
878
1509
|
}
|
|
879
1510
|
|
|
1511
|
+
// ---- JSON Schema export (draft 2020-12) -------------------------------------
|
|
1512
|
+
//
|
|
1513
|
+
// One declaration → wire contract. Field types map per the table in the
|
|
1514
|
+
// language reference; nested registry schemas become \`$ref\`s collected
|
|
1515
|
+
// under \`$defs\` (cycle-safe); enums map to \`enum\`, unions to \`oneOf\` +
|
|
1516
|
+
// an OpenAPI-style \`discriminator\`. Transforms and refinements have no
|
|
1517
|
+
// executable JSON Schema equivalent — they export as \`description\`
|
|
1518
|
+
// annotations rather than being silently dropped or approximated.
|
|
1519
|
+
|
|
1520
|
+
const __SCHEMA_JSON_TYPES = {
|
|
1521
|
+
string: () => ({ type: 'string' }),
|
|
1522
|
+
text: () => ({ type: 'string' }),
|
|
1523
|
+
email: () => ({ type: 'string', format: 'email' }),
|
|
1524
|
+
url: () => ({ type: 'string', format: 'uri' }),
|
|
1525
|
+
uuid: () => ({ type: 'string', format: 'uuid' }),
|
|
1526
|
+
phone: () => ({ type: 'string', pattern: '^[\\\\d\\\\s\\\\-+()]+$' }),
|
|
1527
|
+
zip: () => ({ type: 'string', pattern: '^\\\\d{5}(-\\\\d{4})?$' }),
|
|
1528
|
+
number: () => ({ type: 'number' }),
|
|
1529
|
+
integer: () => ({ type: 'integer' }),
|
|
1530
|
+
boolean: () => ({ type: 'boolean' }),
|
|
1531
|
+
date: () => ({ type: 'string', format: 'date' }),
|
|
1532
|
+
datetime: () => ({ type: 'string', format: 'date-time' }),
|
|
1533
|
+
json: () => ({}),
|
|
1534
|
+
any: () => ({}),
|
|
1535
|
+
};
|
|
1536
|
+
|
|
1537
|
+
function __schemaFieldJSONSchema(f, ctx) {
|
|
1538
|
+
let s;
|
|
1539
|
+
if (f.typeName === 'literal-union' && f.literals?.length) {
|
|
1540
|
+
s = f.literals.length === 1 ? { const: f.literals[0] } : { enum: [...f.literals] };
|
|
1541
|
+
} else if (__SCHEMA_JSON_TYPES[f.typeName]) {
|
|
1542
|
+
s = __SCHEMA_JSON_TYPES[f.typeName]();
|
|
1543
|
+
} else {
|
|
1544
|
+
const sub = __SchemaRegistry.get(f.typeName);
|
|
1545
|
+
if (sub) {
|
|
1546
|
+
s = __schemaJSONSchemaRef(sub, ctx);
|
|
1547
|
+
} else {
|
|
1548
|
+
s = {}; // unknown identifier — permissive, matching the validator
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
const c = f.constraints;
|
|
1552
|
+
if (c && !f.array) {
|
|
1553
|
+
const stringish = s.type === 'string';
|
|
1554
|
+
const numeric = s.type === 'number' || s.type === 'integer';
|
|
1555
|
+
if (stringish) {
|
|
1556
|
+
if (c.min != null) s.minLength = c.min;
|
|
1557
|
+
if (c.max != null) s.maxLength = c.max;
|
|
1558
|
+
if (c.regex) s.pattern = c.regex.source;
|
|
1559
|
+
} else if (numeric) {
|
|
1560
|
+
if (c.min != null) s.minimum = c.min;
|
|
1561
|
+
if (c.max != null) s.maximum = c.max;
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
if (f.array) {
|
|
1565
|
+
const items = s;
|
|
1566
|
+
s = { type: 'array', items };
|
|
1567
|
+
if (c) {
|
|
1568
|
+
if (c.min != null) s.minItems = c.min;
|
|
1569
|
+
if (c.max != null) s.maxItems = c.max;
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
if (c && c.default !== undefined) s.default = c.default;
|
|
1573
|
+
if (f.coerce) {
|
|
1574
|
+
s.description = ((s.description ? s.description + ' ' : '') +
|
|
1575
|
+
'Coerced from wire data (' + (f.coercer ? '~:' + f.coercer : '~' + f.typeName) + ').').trim();
|
|
1576
|
+
}
|
|
1577
|
+
if (f.transform) {
|
|
1578
|
+
s.description = ((s.description ? s.description + ' ' : '') +
|
|
1579
|
+
'Derived via transform; the raw input may use different keys.').trim();
|
|
1580
|
+
}
|
|
1581
|
+
return s;
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
// A registry schema used as a field type / union constituent becomes a
|
|
1585
|
+
// \`$ref\` into \`$defs\`, expanding each named schema exactly once.
|
|
1586
|
+
function __schemaJSONSchemaRef(def, ctx) {
|
|
1587
|
+
const name = def.name || 'Anon';
|
|
1588
|
+
if (!ctx.defs.has(name) && !ctx.expanding.has(name)) {
|
|
1589
|
+
ctx.expanding.add(name);
|
|
1590
|
+
ctx.defs.set(name, null); // reserve slot to keep insertion order
|
|
1591
|
+
ctx.defs.set(name, __schemaJSONSchemaBody(def, ctx));
|
|
1592
|
+
ctx.expanding.delete(name);
|
|
1593
|
+
}
|
|
1594
|
+
return { $ref: '#/$defs/' + name };
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1597
|
+
function __schemaJSONSchemaBody(def, ctx) {
|
|
1598
|
+
const norm = def._normalize();
|
|
1599
|
+
|
|
1600
|
+
if (def.kind === 'enum') {
|
|
1601
|
+
return { enum: [...new Set(norm.enumMembers.values())] };
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
if (def.kind === 'union') {
|
|
1605
|
+
const plan = def._unionPlan();
|
|
1606
|
+
const oneOf = norm.unionMembers.map(name => {
|
|
1607
|
+
const member = __SchemaRegistry.get(name);
|
|
1608
|
+
return member ? __schemaJSONSchemaRef(member, ctx) : {};
|
|
1609
|
+
});
|
|
1610
|
+
return {
|
|
1611
|
+
oneOf,
|
|
1612
|
+
discriminator: { propertyName: plan.disc },
|
|
1613
|
+
};
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
// Fielded kinds: object schema. A field is required on the wire only
|
|
1617
|
+
// when it's \`!\`-marked AND has no default (defaults apply before the
|
|
1618
|
+
// required check, so a defaulted field can never fail required).
|
|
1619
|
+
const properties = {};
|
|
1620
|
+
const required = [];
|
|
1621
|
+
for (const [n, f] of norm.fields) {
|
|
1622
|
+
properties[n] = __schemaFieldJSONSchema(f, ctx);
|
|
1623
|
+
if (f.required && f.constraints?.default === undefined) required.push(n);
|
|
1624
|
+
}
|
|
1625
|
+
// :model wire shapes include the DB-managed columns toJSON() carries.
|
|
1626
|
+
if (def.kind === 'model') {
|
|
1627
|
+
properties[norm.primaryKey] = { type: 'integer' };
|
|
1628
|
+
for (const [, rel] of norm.relations) {
|
|
1629
|
+
if (rel.kind !== 'belongsTo') continue;
|
|
1630
|
+
properties[__schemaCamel(rel.foreignKey)] = rel.optional
|
|
1631
|
+
? { type: ['integer', 'null'] }
|
|
1632
|
+
: { type: 'integer' };
|
|
1633
|
+
}
|
|
1634
|
+
if (norm.timestamps) {
|
|
1635
|
+
properties.createdAt = { type: 'string', format: 'date-time' };
|
|
1636
|
+
properties.updatedAt = { type: 'string', format: 'date-time' };
|
|
1637
|
+
}
|
|
1638
|
+
if (norm.softDelete) {
|
|
1639
|
+
properties.deletedAt = { type: ['string', 'null'], format: 'date-time' };
|
|
1640
|
+
}
|
|
1641
|
+
}
|
|
1642
|
+
const out = { type: 'object', properties };
|
|
1643
|
+
if (required.length) out.required = required;
|
|
1644
|
+
if (norm.ensures.length) {
|
|
1645
|
+
out.description = 'Refinements (not expressible in JSON Schema): ' +
|
|
1646
|
+
norm.ensures.map(r => r.message).join('; ') + '.';
|
|
1647
|
+
}
|
|
1648
|
+
return out;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
__SchemaDef.prototype.toJSONSchema = function () {
|
|
1652
|
+
const ctx = { defs: new Map(), expanding: new Set() };
|
|
1653
|
+
// The root schema expands inline; only REFERENCED schemas go to $defs.
|
|
1654
|
+
const root = __schemaJSONSchemaBody(this, ctx);
|
|
1655
|
+
root.$schema = 'https://json-schema.org/draft/2020-12/schema';
|
|
1656
|
+
if (this.name) root.title = this.name;
|
|
1657
|
+
if (ctx.defs.size) {
|
|
1658
|
+
root.$defs = {};
|
|
1659
|
+
for (const [k, v] of ctx.defs) root.$defs[k] = v;
|
|
1660
|
+
}
|
|
1661
|
+
return root;
|
|
1662
|
+
};
|
|
1663
|
+
|
|
880
1664
|
function __schemaFlatten(keys) {
|
|
881
1665
|
const out = [];
|
|
882
1666
|
for (const k of keys) {
|
|
@@ -887,20 +1671,53 @@ function __schemaFlatten(keys) {
|
|
|
887
1671
|
return out;
|
|
888
1672
|
}
|
|
889
1673
|
|
|
1674
|
+
// The full projectable column set of a schema: declared fields plus the
|
|
1675
|
+
// columns a :model manages implicitly — the \`id\` primary key, \`@timestamps\`
|
|
1676
|
+
// (createdAt/updatedAt), \`@softDelete\` (deletedAt), and \`@belongs_to\` FK
|
|
1677
|
+
// columns. Algebra (.pick/.omit/.partial/.required) operates over THIS set so
|
|
1678
|
+
// a client projection can include \`id\`/\`createdAt\` even though they aren't
|
|
1679
|
+
// declared fields. Non-model kinds have no implicit columns — declared only.
|
|
1680
|
+
function __schemaProjectableFields(def) {
|
|
1681
|
+
const norm = def._normalize();
|
|
1682
|
+
const out = new Map(norm.fields);
|
|
1683
|
+
if (def.kind !== 'model') return out;
|
|
1684
|
+
const col = (name, typeName, required) => {
|
|
1685
|
+
if (!out.has(name)) out.set(name, {
|
|
1686
|
+
name, required: !!required, unique: false, optional: !required,
|
|
1687
|
+
typeName, literals: null, array: false, constraints: null, transform: null,
|
|
1688
|
+
});
|
|
1689
|
+
};
|
|
1690
|
+
col(norm.primaryKey, 'integer', true);
|
|
1691
|
+
if (norm.timestamps) { col('createdAt', 'datetime', true); col('updatedAt', 'datetime', true); }
|
|
1692
|
+
if (norm.softDelete) col('deletedAt', 'datetime', false);
|
|
1693
|
+
for (const [, rel] of norm.relations) {
|
|
1694
|
+
if (rel.kind === 'belongsTo') col(__schemaCamel(rel.foreignKey), 'integer', !rel.optional);
|
|
1695
|
+
}
|
|
1696
|
+
return out;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
890
1699
|
function __schemaDerive(source, transform) {
|
|
891
|
-
|
|
1700
|
+
// Algebra on a union has no obviously-right semantics (distribute?
|
|
1701
|
+
// intersect?) — deferring is honest. Derive from a constituent.
|
|
1702
|
+
if (source.kind === 'union') {
|
|
1703
|
+
throw new Error('schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead');
|
|
1704
|
+
}
|
|
1705
|
+
const src = __schemaProjectableFields(source);
|
|
892
1706
|
const derivedFields = transform(src);
|
|
893
1707
|
const entries = [];
|
|
894
1708
|
for (const [, f] of derivedFields) {
|
|
895
1709
|
const mods = [];
|
|
896
1710
|
if (f.required) mods.push('!');
|
|
897
|
-
if (f.unique) mods.push('#');
|
|
898
1711
|
if (f.optional && !f.required) mods.push('?');
|
|
899
1712
|
entries.push({
|
|
900
1713
|
tag: 'field', name: f.name, modifiers: mods,
|
|
1714
|
+
unique: f.unique === true,
|
|
901
1715
|
typeName: f.typeName, array: f.array,
|
|
902
1716
|
literals: f.literals || null,
|
|
1717
|
+
coerce: f.coerce === true,
|
|
1718
|
+
coercer: f.coercer || null,
|
|
903
1719
|
constraints: f.constraints,
|
|
1720
|
+
attrs: f.attrs || null,
|
|
904
1721
|
transform: f.transform || null,
|
|
905
1722
|
});
|
|
906
1723
|
}
|
|
@@ -966,12 +1783,15 @@ function __schemaExpandMixins(host, fields, directives, ctx) {
|
|
|
966
1783
|
fields.set(e.name, {
|
|
967
1784
|
name: e.name,
|
|
968
1785
|
required: e.modifiers.includes('!'),
|
|
969
|
-
unique: e.
|
|
1786
|
+
unique: e.unique === true,
|
|
970
1787
|
optional: e.modifiers.includes('?'),
|
|
971
1788
|
typeName: e.typeName,
|
|
972
1789
|
literals: e.literals || null,
|
|
973
1790
|
array: e.array === true,
|
|
1791
|
+
coerce: e.coerce === true,
|
|
1792
|
+
coercer: e.coercer || null,
|
|
974
1793
|
constraints: e.constraints || null,
|
|
1794
|
+
attrs: e.attrs || null,
|
|
975
1795
|
transform: e.transform || null,
|
|
976
1796
|
});
|
|
977
1797
|
}
|
|
@@ -989,7 +1809,7 @@ function __schema(descriptor) {
|
|
|
989
1809
|
if (def.name) __SchemaRegistry.register(def);
|
|
990
1810
|
return def;
|
|
991
1811
|
}
|
|
992
|
-
`;var
|
|
1812
|
+
`;var N3=`// Browser stubs — throwing replacements for every ORM / DDL helper that
|
|
993
1813
|
// the validate fragment references but doesn't implement. Loaded ONLY
|
|
994
1814
|
// in browser mode.
|
|
995
1815
|
//
|
|
@@ -1008,49 +1828,62 @@ const __schemaBrowserStub = (api) => function() {
|
|
|
1008
1828
|
};
|
|
1009
1829
|
|
|
1010
1830
|
// Static / class-level methods on __SchemaDef
|
|
1011
|
-
__SchemaDef.prototype.find
|
|
1012
|
-
__SchemaDef.prototype.
|
|
1013
|
-
__SchemaDef.prototype.
|
|
1014
|
-
__SchemaDef.prototype.
|
|
1015
|
-
__SchemaDef.prototype.
|
|
1016
|
-
__SchemaDef.prototype.
|
|
1017
|
-
__SchemaDef.prototype.
|
|
1831
|
+
__SchemaDef.prototype.find = __schemaBrowserStub('find');
|
|
1832
|
+
__SchemaDef.prototype.findMany = __schemaBrowserStub('findMany');
|
|
1833
|
+
__SchemaDef.prototype.where = __schemaBrowserStub('where');
|
|
1834
|
+
__SchemaDef.prototype.includes = __schemaBrowserStub('includes');
|
|
1835
|
+
__SchemaDef.prototype.withDeleted = __schemaBrowserStub('withDeleted');
|
|
1836
|
+
__SchemaDef.prototype.onlyDeleted = __schemaBrowserStub('onlyDeleted');
|
|
1837
|
+
__SchemaDef.prototype.unscoped = __schemaBrowserStub('unscoped');
|
|
1838
|
+
__SchemaDef.prototype.all = __schemaBrowserStub('all');
|
|
1839
|
+
__SchemaDef.prototype.first = __schemaBrowserStub('first');
|
|
1840
|
+
__SchemaDef.prototype.count = __schemaBrowserStub('count');
|
|
1841
|
+
__SchemaDef.prototype.create = __schemaBrowserStub('create');
|
|
1842
|
+
__SchemaDef.prototype.upsert = __schemaBrowserStub('upsert');
|
|
1843
|
+
__SchemaDef.prototype.insertMany = __schemaBrowserStub('insertMany');
|
|
1844
|
+
__SchemaDef.prototype.toSQL = __schemaBrowserStub('toSQL');
|
|
1018
1845
|
|
|
1019
1846
|
// Helpers referenced by the validate fragment that are otherwise
|
|
1020
1847
|
// defined in db-naming / orm fragments. Kept inert (return safe
|
|
1021
1848
|
// defaults or throw on use) so validate's _makeClass / _normalize
|
|
1022
1849
|
// can run end-to-end in browser context.
|
|
1023
|
-
function __schemaSave()
|
|
1024
|
-
function __schemaDestroy()
|
|
1850
|
+
function __schemaSave() { throw new Error("schema instance.save() is not available in the browser. Import @rip-lang/db on the server."); }
|
|
1851
|
+
function __schemaDestroy() { throw new Error("schema instance.destroy() is not available in the browser. Import @rip-lang/db on the server."); }
|
|
1852
|
+
function __schemaRestore() { throw new Error("schema instance.restore() is not available in the browser. Import @rip-lang/db on the server."); }
|
|
1853
|
+
function __schemaResolveRelation() { throw new Error("schema relation accessors are not available in the browser. Import @rip-lang/db on the server."); }
|
|
1854
|
+
function __schemaTransaction() { throw new Error("schema.transaction() is not available in the browser. Import @rip-lang/db on the server."); }
|
|
1855
|
+
function __schemaInvokeScope() { throw new Error("schema query scopes are not available in the browser. Import @rip-lang/db on the server."); }
|
|
1025
1856
|
function __schemaTableName(m) { return null; } // returned only for :model normalize; never used downstream in browser
|
|
1026
1857
|
function __schemaPluralize(w) { return w; } // identity — relations work for type-resolution but never query
|
|
1027
1858
|
function __schemaFkName(m) { return ''; } // ditto
|
|
1028
|
-
`;var H4={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,Schema:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,MapLiteral:46,Atom:47,JS:48,Regex:49,UNDEFINED:50,NULL:51,BOOL:52,INFINITY:53,NAN:54,SYMBOL:55,NUMBER:56,String:57,Identifier:58,IDENTIFIER:59,Property:60,PROPERTY:61,STRING:62,STRING_START:63,Interpolations:64,STRING_END:65,InterpolationChunk:66,INTERPOLATION_START:67,INTERPOLATION_END:68,INDENT:69,OUTDENT:70,REGEX:71,REGEX_START:72,REGEX_END:73,RegexWithIndex:74,",":75,"=":76,REACTIVE_ASSIGN:77,COMPUTED_ASSIGN:78,Block:79,READONLY_ASSIGN:80,EFFECT:81,SimpleAssignable:82,Array:83,Object:84,Subjectable:85,ThisProperty:86,".":87,"?.":88,INDEX_START:89,INDEX_END:90,Slice:91,PICK_START:92,PickList:93,OptComma:94,PICK_END:95,OPTPICK_START:96,ES6_OPTIONAL_INDEX:97,"{":98,ObjAssignable:99,":":100,FOR:101,ForVariables:102,FOROF:103,"}":104,WHEN:105,OWN:106,AssignList:107,AssignObj:108,ObjRestValue:109,SimpleObjAssignable:110,"[":111,"]":112,"@":113,"...":114,ObjSpreadExpr:115,SUPER:116,Arguments:117,DYNAMIC_IMPORT:118,MAP_START:119,MapAssignList:120,MAP_END:121,MapAssignObj:122,MapAssignable:123,PickItem:124,PickKey:125,Elisions:126,ArgElisionList:127,OptElisions:128,ArgElision:129,Arg:130,Elision:131,RangeDots:132,"..":133,DEF:134,CALL_START:135,ParamList:136,CALL_END:137,PARAM_START:138,PARAM_END:139,ArrowKind:140,"->":141,"=>":142,Param:143,ParamVar:144,Splat:145,ES6_OPTIONAL_CALL:146,ArgList:147,SimpleArgs:148,THIS:149,NEW_TARGET:150,IMPORT_META:151,"(":152,")":153,RETURN:154,THROW:155,YIELD:156,FROM:157,IfBlock:158,IF:159,IfElseTail:160,ELSE:161,UnlessBlock:162,UNLESS:163,POST_IF:164,POST_UNLESS:165,TRY:166,Catch:167,FINALLY:168,CATCH:169,SWITCH:170,Cases:171,When:172,LEADING_WHEN:173,WhileSource:174,WHILE:175,UNTIL:176,Loop:177,LOOP:178,FORIN:179,BY:180,FORAS:181,AWAIT:182,FORASAWAIT:183,ForValue:184,ClassName:185,CLASS:186,EXTENDS:187,ENUM:188,SCHEMA:189,SCHEMA_BODY:190,COMPONENT:191,ComponentBody:192,ComponentLine:193,OFFER:194,ACCEPT:195,RENDER:196,IMPORT:197,ImportDefaultSpecifier:198,ImportNamespaceSpecifier:199,ImportSpecifierList:200,ImportSpecifier:201,AS:202,DEFAULT:203,IMPORT_ALL:204,EXPORT:205,ExportSpecifierList:206,EXPORT_ALL:207,ExportSpecifier:208,UNARY:209,DO:210,DO_IIFE:211,UNARY_MATH:212,"-":213,"+":214,"?":215,PRESENCE:216,"--":217,"++":218,MATH:219,"**":220,SHIFT:221,COMPARE:222,"&":223,"^":224,"|":225,"||":226,"??":227,"&&":228,PIPE:229,RELATION:230,TERNARY:231,COMPOUND_ASSIGN:232},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",48:"JS",50:"UNDEFINED",51:"NULL",52:"BOOL",53:"INFINITY",54:"NAN",55:"SYMBOL",56:"NUMBER",59:"IDENTIFIER",61:"PROPERTY",62:"STRING",63:"STRING_START",65:"STRING_END",67:"INTERPOLATION_START",68:"INTERPOLATION_END",69:"INDENT",70:"OUTDENT",71:"REGEX",72:"REGEX_START",73:"REGEX_END",75:",",76:"=",77:"REACTIVE_ASSIGN",78:"COMPUTED_ASSIGN",80:"READONLY_ASSIGN",81:"EFFECT",87:".",88:"?.",89:"INDEX_START",90:"INDEX_END",92:"PICK_START",95:"PICK_END",96:"OPTPICK_START",97:"ES6_OPTIONAL_INDEX",98:"{",100:":",101:"FOR",103:"FOROF",104:"}",105:"WHEN",106:"OWN",111:"[",112:"]",113:"@",114:"...",116:"SUPER",118:"DYNAMIC_IMPORT",119:"MAP_START",121:"MAP_END",133:"..",134:"DEF",135:"CALL_START",137:"CALL_END",138:"PARAM_START",139:"PARAM_END",141:"->",142:"=>",146:"ES6_OPTIONAL_CALL",149:"THIS",150:"NEW_TARGET",151:"IMPORT_META",152:"(",153:")",154:"RETURN",155:"THROW",156:"YIELD",157:"FROM",159:"IF",161:"ELSE",163:"UNLESS",164:"POST_IF",165:"POST_UNLESS",166:"TRY",168:"FINALLY",169:"CATCH",170:"SWITCH",173:"LEADING_WHEN",175:"WHILE",176:"UNTIL",178:"LOOP",179:"FORIN",180:"BY",181:"FORAS",182:"AWAIT",183:"FORASAWAIT",186:"CLASS",187:"EXTENDS",188:"ENUM",189:"SCHEMA",190:"SCHEMA_BODY",191:"COMPONENT",194:"OFFER",195:"ACCEPT",196:"RENDER",197:"IMPORT",202:"AS",203:"DEFAULT",204:"IMPORT_ALL",205:"EXPORT",207:"EXPORT_ALL",209:"UNARY",210:"DO",211:"DO_IIFE",212:"UNARY_MATH",213:"-",214:"+",215:"?",216:"PRESENCE",217:"--",218:"++",219:"MATH",220:"**",221:"SHIFT",222:"COMPARE",223:"&",224:"^",225:"|",226:"||",227:"??",228:"&&",229:"PIPE",230:"RELATION",231:"TERNARY",232:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[113,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,1,1,0,2,1,5,-2,113,5,1,5,62,2,83,-3,-3,-3,-3,-3,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,132,-6,-6,-6,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,9,1,5,62,1,1,5,37,25,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,62,1,1,5,37,25,16,11,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,133,134,135,102,103,58,1,5,51,5,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,3,4,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,138,111,112,-13,-13,-13,-13,-92,-92,-92,-13,-92,-13,-92,-92,-13,-13,-13,-13,-13,-13,-13,139,-13,-13,141,-13,-13,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,136,137,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,50,1,5,62,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-93,-93,-93,-14,-93,-14,-93,-93,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,62,1,1,5,37,25,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,62,1,1,5,37,25,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,142,143,144,145,146,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,147,-215,-215,148,149,112,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,158,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,157,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,160,161,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,163,164,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,165,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,171,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,172,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,173,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,174,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,49,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,176,177,178,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,175,75,76,99,98,105,87,91,88,89,94,166,167,95,96,90,92,93,86,170,49,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,176,177,178,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,179,75,76,99,98,105,87,91,88,89,94,166,167,95,96,90,92,93,86,170,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,180,181,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,182,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,184,183,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,185,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,2,69,10,159,186,2,69,10,159,187,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,14,40,18,1,24,1,2,12,4,4,5,2,31,38,2,191,151,110,153,154,152,105,188,189,87,155,193,190,192,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,194,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,195,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,51,1,5,52,1,9,1,1,5,4,7,4,5,5,1,2,1,1,7,1,1,7,12,4,2,14,8,3,1,10,1,3,1,1,2,2,2,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,199,110,-352,159,-352,-352,196,200,-352,-352,-352,-352,-352,-352,-352,-352,155,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,198,197,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,2,69,118,201,202,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,204,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,203,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,205,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,206,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,146,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,2,12,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,207,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-266,208,-266,108,109,-266,55,54,75,76,99,98,-266,-266,105,-266,-266,-266,-266,-266,87,-266,91,-266,88,89,94,-266,-266,68,-266,166,-266,167,95,96,90,92,93,86,-266,72,66,67,209,56,100,-266,57,101,-266,-266,58,62,59,-266,-266,60,104,-266,-266,-266,51,-266,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,2,58,1,210,110,2,58,1,211,110,1,190,212,6,15,20,103,2,1,1,214,213,44,45,95,96,145,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,2,12,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,215,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-263,216,-263,108,109,-263,55,54,75,76,99,98,-263,-263,105,-263,-263,-263,-263,-263,87,-263,91,-263,88,89,94,-263,-263,68,-263,166,-263,167,95,96,90,92,93,86,-263,72,66,67,56,100,-263,57,101,-263,-263,58,62,59,-263,-263,60,104,-263,-263,-263,51,-263,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,9,57,1,1,3,1,35,100,1,5,217,221,110,111,112,220,218,219,222,64,14,1,3,1,1,1,6,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,13,2,3,2,1,15,4,2,1,1,7,1,1,1,34,2,3,12,4,4,176,177,229,230,231,232,224,225,226,227,235,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,228,110,111,112,108,109,55,236,75,76,99,98,223,87,91,88,89,94,68,166,167,95,96,90,92,93,86,63,69,64,233,234,170,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,237,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,238,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,119,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,239,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,240,91,250,88,89,94,241,242,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,87,2,28,18,252,253,251,141,2,117,18,254,141,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,58,1,5,54,1,1,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,255,256,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,87,257,1,87,258,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,2,12,13,2,1,6,1,1,1,29,-152,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,-152,-152,108,109,-152,273,274,265,105,156,155,262,259,-152,260,261,86,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,17,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,17,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,6,87,1,1,3,4,1,277,278,279,280,281,282,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,283,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,284,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,285,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,286,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,288,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,287,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,23,6,41,9,1,1,1,1,1,1,1,6,1,5,11,13,5,3,1,1,1,1,2,1,-114,294,106,107,296,110,297,256,111,112,-114,-114,-114,298,289,-114,290,295,299,291,292,293,300,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,49,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,176,177,178,35,36,37,301,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,236,75,76,99,98,105,87,91,88,89,94,166,167,95,96,90,92,93,86,170,67,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,4,4,3,1,10,1,3,1,1,2,4,15,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,59,1,5,56,1,2,2,1,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,57,5,1,1,2,1,305,111,112,302,303,304,115,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,1,1,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-5,306,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-5,-5,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,-5,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,307,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,308,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,309,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,310,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,311,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,312,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,313,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,314,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,315,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,318,162,316,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,317,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,321,162,319,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,320,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,324,162,322,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,323,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,325,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,326,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,327,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,328,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,329,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,14,40,18,1,24,1,2,12,4,4,5,2,31,38,2,333,151,110,153,154,152,105,330,331,87,155,193,332,192,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,334,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,335,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,2,117,18,336,141,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,340,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,339,68,337,44,45,95,96,249,338,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,343,342,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,344,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,346,345,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,347,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,349,348,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,350,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,352,351,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,353,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,355,354,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,356,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,11,6,63,1,5,19,1,9,8,9,16,2,-259,-259,-259,358,359,-259,-259,-259,-259,-259,357,6,6,63,1,5,62,2,-216,-216,-216,-216,-216,-216,7,6,63,1,5,1,61,2,-220,-220,-220,-220,360,-220,-220,15,6,52,1,10,1,5,8,1,2,12,13,2,24,2,5,-223,151,110,-223,-223,-223,153,154,152,105,156,155,-223,-223,361,11,6,63,1,5,1,27,34,2,40,2,2,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,11,6,63,1,5,1,27,34,2,40,2,2,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,11,6,63,1,5,1,27,34,2,40,2,2,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,11,6,63,1,5,1,27,34,2,40,2,2,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,2,60,1,255,256,119,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,240,91,250,88,89,94,241,242,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,9,1,5,62,1,1,5,37,25,16,-212,-212,-212,-212,-212,-212,-212,-212,-212,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,363,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,362,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,131,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,124,-423,-423,-423,-423,9,1,5,62,1,1,5,37,25,16,-420,-420,-420,-420,-420,-420,-420,-420,-420,5,164,1,9,1,1,133,134,135,102,103,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,131,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,124,-424,-424,-424,-424,9,1,5,62,1,1,5,37,25,16,-421,-421,-421,-421,-421,-421,-421,-421,-421,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,131,-425,-425,-425,-425,-425,-425,-425,-425,-425,117,-425,-425,-425,-425,-425,-425,124,-425,-425,-425,-425,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,364,-215,-215,148,149,2,69,10,159,157,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,160,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,163,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,5,15,123,2,1,1,214,166,167,95,96,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,131,-426,-426,-426,-426,-426,-426,-426,-426,-426,117,-426,-426,-426,-426,-426,-426,124,-426,-426,-426,-426,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,131,-427,-427,-427,-427,-427,-427,-427,-427,-427,117,-427,-427,-427,-427,-427,-427,124,-427,-427,-427,-427,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,131,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,124,-430,-430,-430,-430,2,84,14,365,105,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-89,-89,-432,-432,-432,-432,-89,-89,-89,-89,-89,-89,-89,-89,-432,-89,-432,-89,-89,-432,-432,-432,-432,-432,-432,-432,-432,-432,-89,-432,-432,-89,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-89,-89,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,12,57,5,1,24,1,1,3,4,1,20,18,11,138,111,112,-92,-92,-92,-92,-92,-92,139,141,140,6,87,1,1,3,4,1,-93,-93,-93,-93,-93,-93,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-89,-89,-433,-433,-433,-433,-89,-89,-89,-89,-89,-89,-89,-89,-433,-89,-433,-89,-89,-433,-433,-433,-433,-433,-433,-433,-433,-433,-89,-433,-433,-89,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-89,-89,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,368,366,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,367,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,132,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,129,130,131,102,103,-86,-86,-86,-86,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,369,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,47,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,2,1,1,6,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,370,371,372,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,4,103,76,2,2,374,373,375,376,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,377,156,155,193,192,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,378,156,155,193,192,3,69,10,101,159,379,380,5,75,28,76,2,2,381,-348,-348,-348,-348,6,75,1,27,76,2,2,-346,382,-346,-346,-346,-346,22,69,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,383,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,3,171,1,1,384,385,386,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,387,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,159,-356,-356,388,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,389,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,392,393,394,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,390,391,395,396,65,73,74,46,47,71,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,397,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,132,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,131,102,103,-373,-373,-373,-373,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,131,-264,-264,-264,-264,-264,-264,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,398,105,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,131,-267,-267,-267,-267,-267,-267,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,399,105,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,400,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,69,10,56,159,402,401,2,69,10,159,403,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,9,1,5,62,1,1,5,37,25,16,-422,-422,-422,-422,-422,-422,-422,-422,-422,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,131,-261,-261,-261,-261,-261,-261,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,404,105,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,2,75,82,406,405,1,157,407,7,58,1,10,35,96,1,2,412,110,411,408,409,410,413,2,75,82,-390,-390,1,202,414,26,6,41,9,1,1,1,1,1,1,1,6,1,5,11,13,5,3,1,1,1,1,2,1,89,3,2,-114,294,106,107,419,110,297,256,111,112,418,-114,-114,298,289,415,290,295,299,291,292,293,300,420,416,417,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,421,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,422,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,423,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,157,424,60,1,5,56,1,5,1,1,5,2,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,143,144,145,146,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,2,6,147,113,425,111,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,426,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,30,6,63,1,5,26,11,2,18,1,4,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,132,-241,429,427,428,-241,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,246,55,54,75,76,99,98,105,61,87,430,91,250,88,89,94,432,431,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,11,6,63,1,5,19,1,9,8,9,7,9,-259,-259,-259,434,435,-259,-259,-259,-259,433,-259,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,436,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,5,6,63,1,5,37,-187,-187,-187,-187,-187,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,438,437,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,5,6,63,1,5,37,-192,-192,-192,-192,-192,6,6,63,1,5,37,25,-242,-242,-242,-242,-242,-242,6,6,63,1,5,37,25,-243,-243,-243,-243,-243,-243,112,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,1,12,3,10,1,1,3,2,1,15,3,1,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-244,439,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-244,-244,108,109,-244,55,54,75,76,99,98,105,61,87,-244,91,88,89,94,68,-244,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,60,1,440,256,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,441,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,442,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,65,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,4,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,65,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,4,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,2,60,1,443,256,2,60,1,444,256,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,446,445,-259,-259,-259,-259,-259,5,6,63,1,5,46,-153,-153,-153,-153,-153,1,100,447,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,448,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,100,-170,1,100,-171,1,100,-172,1,100,-173,1,100,-174,1,100,-175,1,100,-176,1,100,-177,1,100,-178,1,100,-179,1,100,-180,1,100,-181,1,100,-182,1,100,-183,2,60,1,449,256,2,60,1,450,256,112,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,451,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,456,80,81,82,83,84,85,106,107,97,110,111,112,452,108,109,454,55,54,75,76,99,98,453,105,61,87,91,429,88,89,94,455,428,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,8,58,1,1,1,8,24,31,1,461,110,462,256,458,457,459,460,8,58,1,1,1,8,24,31,1,461,110,462,256,464,463,459,460,1,89,465,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,466,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,467,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,132,-301,-301,468,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,131,102,103,-301,-301,-301,-301,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,132,-303,-303,469,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,131,102,103,-303,-303,-303,-303,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,159,-310,-310,470,-310,-310,-310,132,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,131,102,103,-310,-310,-310,-310,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,6,6,63,1,5,25,4,-119,-119,-119,-119,471,-119,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,473,472,-259,-259,-259,-259,-259,7,6,63,1,5,1,24,4,-128,-128,-128,-128,474,-128,-128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,475,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,60,1,50,255,256,476,6,6,63,1,5,25,4,-131,-131,-131,-131,-131,-131,5,6,63,1,5,29,-115,-115,-115,-115,-115,13,6,63,1,5,1,11,1,1,3,4,4,4,31,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,13,6,63,1,5,1,11,1,1,3,4,4,4,31,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,13,6,63,1,5,1,11,1,1,3,4,4,4,31,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,5,6,63,1,5,29,-120,-120,-120,-120,-120,17,39,4,1,14,1,1,1,23,2,12,12,3,2,1,2,31,3,480,482,481,296,110,297,256,479,298,105,477,91,478,483,484,90,86,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,485,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,6,57,5,1,2,1,1,305,111,112,486,487,304,4,62,1,2,2,-61,-61,-61,-61,113,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,488,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,490,489,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-66,-66,-66,-66,5,1,5,62,2,83,-4,-4,-4,-4,-4,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,131,-436,-436,-436,-436,-436,-436,-436,-436,116,117,-436,-436,-436,-436,-436,-436,124,-436,-436,-436,-436,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,131,-437,-437,-437,-437,-437,-437,-437,-437,116,117,-437,-437,-437,-437,-437,-437,124,-437,-437,-437,-437,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,-438,-438,-438,-438,-438,-438,-438,-438,-438,117,-438,-438,-438,-438,-438,-438,124,-438,-438,-438,-438,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,-439,-439,-439,-439,-439,-439,-439,-439,-439,117,-439,-439,-439,-439,-439,-439,124,-439,-439,-439,-439,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,-440,-440,-440,-440,-440,-440,115,114,116,117,-440,-440,-440,-440,-440,-440,124,-440,-440,-440,-440,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,-441,-441,-441,-441,-441,-441,115,114,116,117,118,-441,-441,-441,-441,-441,124,-441,-441,127,-441,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,131,-442,-442,-442,-442,-442,-442,115,114,116,117,118,119,-442,-442,-442,-442,124,-442,-442,127,-442,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,-443,-443,-443,-443,-443,-443,115,114,116,117,118,119,120,-443,-443,-443,124,-443,-443,127,-443,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,131,-444,-444,-444,-444,-444,-444,115,114,116,117,118,119,120,121,-444,-444,124,-444,-444,127,-444,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,131,-452,-452,-452,-452,-452,-452,115,114,116,117,118,119,120,121,122,-452,124,125,-452,127,-452,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,132,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,129,130,131,102,103,-453,-453,-453,-453,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,131,-451,-451,-451,-451,-451,-451,115,114,116,117,118,119,120,121,122,-451,124,-451,-451,127,-451,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,131,-454,-454,-454,-454,-454,-454,115,114,116,117,118,119,120,121,122,123,124,125,-454,127,-454,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,131,-455,-455,-455,-455,-455,-455,115,114,116,117,118,-455,-455,-455,-455,-455,124,-455,-455,-455,-455,22,100,1,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,491,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,132,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,492,-280,-280,131,102,103,-280,-280,-280,-280,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,132,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,131,102,103,-284,-284,-284,-284,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,103,76,2,2,494,493,495,496,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,497,156,155,193,192,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,498,156,155,193,192,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,499,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,132,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,131,102,103,-279,-279,-279,-279,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,132,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,131,102,103,-283,-283,-283,-283,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,501,500,-259,-259,-259,-259,-259,5,6,63,1,5,62,-236,-236,-236,-236,-236,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,340,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,339,68,44,45,95,96,249,502,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,26,11,25,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,132,-241,-241,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,131,-71,-71,-71,-71,-71,-71,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,503,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,504,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,132,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,129,130,131,102,103,-74,-74,-74,-74,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,505,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,506,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,132,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,129,130,131,102,103,-77,-77,-77,-77,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,507,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,132,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,129,130,131,102,103,-80,-80,-80,-80,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,508,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,509,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,132,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,129,130,131,102,103,-83,-83,-83,-83,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,510,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,140,1,1,511,95,96,19,6,52,1,10,1,13,1,2,9,3,6,7,1,1,1,7,16,6,1,-260,151,110,-260,-260,153,154,152,-260,105,-260,156,-260,155,150,-260,-260,512,149,2,6,63,513,514,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,515,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,6,6,63,1,5,62,2,-222,-222,-222,-222,-222,-222,59,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,3,1,4,2,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,2,6,64,113,516,11,6,63,1,5,19,1,9,8,9,16,2,-259,-259,-259,358,359,-259,-259,-259,-259,-259,517,1,70,518,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,-457,-457,-457,-457,-457,-457,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,519,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,520,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,132,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,129,130,131,102,103,-87,-87,-87,-87,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,521,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,2,69,10,159,522,8,58,1,10,10,4,1,14,13,523,110,159,526,525,524,105,156,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,527,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,528,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,529,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,530,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,103,531,1,181,532,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,533,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,10,58,1,24,1,2,12,13,2,31,40,151,110,153,154,152,105,156,155,193,534,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,535,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,171,1,1,536,385,386,4,70,91,11,1,537,538,539,386,3,70,91,12,-297,-297,-297,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,6,1,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,541,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,540,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,159,-354,-354,542,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,131,-354,-354,-354,-354,-354,-354,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,543,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,2,6,64,545,544,2,6,64,-364,-364,23,6,64,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,6,64,-368,-368,7,6,64,94,1,9,1,1,-369,-369,133,134,135,102,103,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,546,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,59,547,22,69,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,548,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,70,549,1,70,550,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,131,-269,-269,-269,-269,-269,-269,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,551,-215,-215,148,149,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,70,552,3,57,5,1,553,111,112,3,98,101,5,555,554,222,3,57,5,1,556,111,112,1,157,557,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,558,-259,-259,-259,-259,-259,5,6,63,1,5,29,-381,-381,-381,-381,-381,6,58,1,10,131,1,2,412,110,411,560,410,413,6,6,63,1,5,29,98,-386,-386,-386,-386,-386,561,6,6,63,1,5,29,98,-388,-388,-388,-388,-388,562,2,58,1,563,110,14,1,5,62,1,1,5,37,25,16,4,7,1,10,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,564,-392,-392,-392,-392,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,566,565,-259,-259,-259,-259,-259,5,6,63,1,5,29,-410,-410,-410,-410,-410,6,58,1,10,134,3,2,568,110,418,420,567,417,14,6,63,1,5,1,11,1,1,3,4,4,4,31,67,-415,-415,-415,-415,-125,-125,-125,-125,-125,-125,-125,-415,-125,569,6,6,63,1,5,29,98,-418,-418,-418,-418,-418,570,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,572,571,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,573,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,132,-405,-405,-405,-405,-405,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,574,105,3,57,5,1,575,111,112,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,2,6,64,113,576,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,577,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,9,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,9,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,436,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,5,6,63,1,5,37,-193,-193,-193,-193,-193,2,69,43,579,578,124,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,2,5,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-260,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-260,-260,108,109,246,55,54,75,76,99,98,-260,105,61,-260,87,-260,91,250,88,89,94,-260,581,580,247,243,68,-260,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,6,63,1,42,582,-194,-194,-194,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,11,6,63,1,5,19,1,9,8,9,7,9,-259,-259,-259,434,435,-259,-259,-259,-259,583,-259,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,432,431,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,26,11,25,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,132,-228,-228,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,584,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,585,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,3,6,63,52,587,588,586,37,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,11,1,2,9,3,6,7,1,1,1,7,1,1,14,15,-260,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,-260,-260,108,109,273,274,265,-260,105,-260,156,-260,155,262,-260,589,261,-260,86,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,590,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,591,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,26,6,63,1,5,26,20,43,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,132,-159,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,25,90,11,13,18,1,31,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,592,132,429,593,428,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,110,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,594,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,595,105,61,87,91,429,88,89,94,455,428,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,90,596,1,90,597,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,598,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-206,108,109,55,54,75,76,99,98,-206,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,599,-48,-48,-48,-70,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,600,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,602,459,460,5,6,63,1,5,20,-160,-160,-160,-160,-160,7,6,63,1,5,1,19,5,-164,-164,-164,-164,604,-164,603,7,6,63,1,5,1,19,5,-168,-168,-168,-168,-168,-168,-168,7,6,63,1,5,1,19,5,-169,-169,-169,-169,-169,-169,-169,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,605,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,606,459,460,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,607,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,608,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,7,1,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,609,610,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,611,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,612,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,613,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,614,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,615,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,35,617,618,616,25,6,41,9,1,1,1,1,1,1,1,6,1,16,9,4,5,4,1,1,1,1,1,1,7,16,-260,294,106,107,296,110,297,256,111,112,-260,-260,298,-260,620,-260,619,299,291,292,-260,293,300,-260,-260,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,621,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,622,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,22,101,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,132,623,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,624,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,12,6,63,1,5,12,1,1,3,4,8,13,18,-132,-132,-132,-132,-134,-134,-134,-134,-134,-132,625,141,12,6,63,1,5,12,1,1,3,4,8,13,18,-133,-133,-133,-133,627,628,629,630,631,-133,626,141,11,6,63,1,5,12,1,1,3,4,8,31,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,11,6,63,1,5,12,1,1,3,4,8,31,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,11,6,63,1,5,12,1,1,3,4,8,31,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,11,6,63,1,5,12,1,1,3,4,8,31,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,4,87,2,28,18,252,253,632,141,2,117,18,633,141,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,59,1,5,56,1,2,2,1,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,62,1,2,2,-62,-62,-62,-62,2,6,62,113,634,111,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,635,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-65,-65,-65,-65,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,636,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,638,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,637,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,639,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,640,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,641,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,642,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,103,643,1,181,644,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,645,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,68,647,648,646,120,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,2,9,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-260,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-260,-260,108,109,55,54,75,76,99,98,-260,105,61,-260,87,-260,91,250,88,89,94,-260,649,68,-260,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,501,650,-259,-259,-259,-259,-259,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,-72,-72,-72,-72,-72,-72,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,651,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,132,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,129,130,131,102,103,-75,-75,-75,-75,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,652,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,132,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,129,130,131,102,103,-78,-78,-78,-78,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,132,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,129,130,131,102,103,-81,-81,-81,-81,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,653,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,132,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,129,130,131,102,103,-84,-84,-84,-84,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,112,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,655,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,654,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,6,6,63,1,5,62,2,-217,-217,-217,-217,-217,-217,11,58,1,24,1,2,12,13,2,1,29,1,151,110,153,154,152,105,156,155,150,656,149,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,657,-215,-215,148,149,27,6,63,1,5,26,36,2,25,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,132,-221,-221,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,59,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,3,1,4,2,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,3,140,1,1,658,95,96,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,659,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,131,-459,-459,-459,-459,-459,-459,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,69,10,159,660,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,2,69,10,159,661,2,69,10,159,662,2,69,10,159,663,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,25,69,10,22,4,59,1,9,1,1,4,33,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,664,132,665,129,130,131,102,103,666,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,667,132,668,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,669,132,670,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,671,132,672,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,673,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,674,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,675,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,103,76,2,2,-349,-349,-349,-349,26,75,26,2,61,1,9,1,1,3,2,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-347,132,-347,129,130,131,102,103,-347,-347,-347,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,70,91,11,1,676,677,539,386,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,2,69,10,159,678,3,70,91,12,-298,-298,-298,3,69,6,4,159,680,679,23,69,6,26,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,159,-358,-358,681,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,131,-358,-358,-358,-358,-358,-358,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,114,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,2,1,1,1,1,8,4,1,1,1,1,1,3,1,-366,392,393,394,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-366,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,682,395,396,65,73,74,46,47,71,48,49,50,52,53,23,6,64,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,6,64,-371,-371,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,392,393,394,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,683,391,395,396,65,73,74,46,47,71,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,358,359,-259,-259,-259,-259,684,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,1,157,685,6,58,1,10,131,1,2,412,110,411,686,410,413,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,3,57,5,1,687,111,112,3,6,63,35,689,690,688,12,6,52,1,10,1,25,9,8,9,16,64,2,-260,412,110,-260,-260,-260,-260,-260,-260,-260,691,413,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,692,-259,-259,-259,-259,-259,2,58,1,693,110,2,58,1,694,110,1,157,-391,3,57,5,1,695,111,112,3,6,63,35,697,698,696,12,6,52,1,10,1,25,9,8,9,16,66,5,-260,568,110,-260,-260,-260,-260,-260,-260,-260,420,699,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,566,700,-259,-259,-259,-259,-259,6,6,63,1,5,29,98,-415,-415,-415,-415,-415,569,3,58,1,144,701,110,702,2,58,1,703,110,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,132,-398,-398,-398,-398,-398,131,-398,-398,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,704,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,705,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,70,706,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,1,153,707,22,101,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,132,708,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,438,709,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,37,-188,-188,-188,-188,-188,117,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-195,-195,108,109,246,55,54,75,76,99,98,105,61,87,-195,91,250,88,89,94,432,431,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,116,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,7,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,438,710,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,2,69,1,579,711,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,712,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,29,39,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,11,1,2,12,13,2,1,8,1,29,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,108,109,273,274,265,105,156,155,262,713,261,86,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,2,12,13,2,1,6,1,1,1,29,-152,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,-152,-152,108,109,-152,273,274,265,105,156,155,262,714,-152,260,261,86,5,6,63,1,5,46,-154,-154,-154,-154,-154,26,6,63,1,5,26,20,43,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,132,-157,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,715,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,716,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-204,108,109,55,54,75,76,99,98,-204,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,25,70,31,13,18,1,31,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,717,132,429,593,428,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,70,718,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,23,70,20,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,719,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,26,721,722,720,14,6,52,1,1,1,8,1,25,9,8,9,3,1,12,-260,461,110,462,256,-260,-260,-260,-260,-260,-260,723,460,-260,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,724,-259,-259,-259,-259,-259,5,58,1,1,1,64,461,110,462,256,725,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,726,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,26,721,722,727,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,728,-259,-259,-259,-259,-259,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,729,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,730,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,3,69,10,80,159,732,731,2,69,10,159,733,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,131,-302,-302,-302,-302,-302,-302,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,131,-304,-304,-304,-304,-304,-304,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,26,6,63,1,5,26,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,734,-121,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,735,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,17,47,9,1,1,1,1,1,1,1,23,13,9,1,1,1,2,1,294,106,107,296,110,297,256,111,112,298,620,736,299,291,292,293,300,23,6,41,9,1,1,1,1,1,1,1,6,1,5,11,13,5,3,1,1,1,1,2,1,-114,294,106,107,296,110,297,256,111,112,-114,-114,-114,298,620,-114,737,295,299,291,292,293,300,5,6,63,1,5,29,-116,-116,-116,-116,-116,6,6,63,1,5,25,4,-119,-119,-119,-119,738,-119,26,6,63,1,5,26,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,132,-123,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,739,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,6,6,63,1,5,25,4,-129,-129,-129,-129,-129,-129,22,101,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,132,740,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,11,6,63,1,5,12,1,1,3,4,8,31,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,11,6,63,1,5,12,1,1,3,4,8,31,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,2,60,1,741,256,2,60,1,742,256,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,743,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,744,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,8,58,1,1,1,8,24,31,1,461,110,462,256,746,745,459,460,8,58,1,1,1,8,24,31,1,461,110,462,256,748,747,459,460,11,6,63,1,5,12,1,1,3,4,8,31,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,11,6,63,1,5,12,1,1,3,4,8,31,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,4,62,1,2,2,-63,-63,-63,-63,2,6,64,113,749,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,131,-456,-456,-456,-456,-456,-456,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,750,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,132,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,131,102,103,-282,-282,-282,-282,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,751,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,131,-329,-329,-329,752,-329,-329,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,753,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,131,-334,-334,-334,-334,-334,-334,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,754,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,131,-338,-338,-338,-338,-338,-338,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,755,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,131,-342,-342,-342,-342,-342,-342,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,756,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,757,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,131,-345,-345,-345,-345,-345,-345,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,758,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,340,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,339,68,44,45,95,96,249,759,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,62,-237,-237,-237,-237,-237,3,6,63,1,647,648,760,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,9,1,5,62,1,1,5,37,25,16,-211,-211,-211,-211,-211,-211,-211,-211,-211,6,6,63,1,5,62,2,-218,-218,-218,-218,-218,-218,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,358,761,-259,-259,-259,-259,-259,2,69,10,159,654,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,762,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,763,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,764,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,765,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,766,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,767,132,768,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,769,132,770,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,2,69,10,159,771,1,70,772,4,6,64,91,12,773,-299,-299,-299,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,774,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,2,6,64,-365,-365,2,6,64,545,775,2,69,10,159,776,3,57,5,1,777,111,112,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,778,-259,-259,-259,-259,-259,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,1,157,779,4,58,1,142,2,412,110,780,413,6,58,1,10,131,1,2,412,110,411,781,410,413,5,6,63,1,5,29,-382,-382,-382,-382,-382,3,6,63,1,689,690,782,5,6,63,1,5,29,-387,-387,-387,-387,-387,5,6,63,1,5,29,-389,-389,-389,-389,-389,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,14,1,5,62,1,1,5,37,25,16,4,7,1,10,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,783,-393,-393,-393,-393,4,58,1,144,5,568,110,420,784,6,58,1,10,134,3,2,568,110,418,420,785,417,5,6,63,1,5,29,-411,-411,-411,-411,-411,3,6,63,1,697,698,786,5,6,63,1,5,29,-416,-416,-416,-416,-416,5,6,63,1,5,29,-417,-417,-417,-417,-417,5,6,63,1,5,29,-419,-419,-419,-419,-419,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,132,-399,-399,-399,-399,-399,131,-399,-399,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,787,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,11,6,63,1,5,19,1,9,8,9,7,9,-259,-259,-259,434,435,-259,-259,-259,-259,788,-259,5,6,63,1,5,37,-189,-189,-189,-189,-189,5,6,63,1,5,37,-190,-190,-190,-190,-190,1,90,789,5,6,63,1,5,46,-155,-155,-155,-155,-155,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,446,790,-259,-259,-259,-259,-259,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,791,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,70,20,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,90,792,1,90,793,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-69,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,6,58,1,1,1,63,1,461,110,462,256,794,460,7,58,1,1,1,32,31,1,461,110,462,256,795,459,460,5,6,63,1,5,20,-161,-161,-161,-161,-161,3,6,63,1,721,722,796,6,6,63,1,5,1,19,-165,-165,-165,-165,797,-165,26,6,63,1,5,20,6,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,63,1,721,722,798,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,799,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,800,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,14,40,18,1,24,1,2,12,4,4,5,2,31,38,2,333,151,110,153,154,152,105,801,802,87,155,193,332,192,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,803,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,29,-117,-117,-117,-117,-117,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,473,804,-259,-259,-259,-259,-259,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,805,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,615,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,806,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,6,6,63,1,5,25,4,-130,-130,-130,-130,-130,-130,11,6,63,1,5,12,1,1,3,4,8,31,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,11,6,63,1,5,12,1,1,3,4,8,31,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,807,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,808,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,809,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,810,459,460,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,811,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,812,459,460,1,68,813,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,814,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,815,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,816,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,817,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,818,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,819,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,820,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,131,-336,-336,-336,-336,-336,-336,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,821,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,131,-340,-340,-340,-340,-340,-340,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,62,-238,-238,-238,-238,-238,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,501,822,-259,-259,-259,-259,-259,5,6,63,1,5,62,-239,-239,-239,-239,-239,3,6,63,1,513,514,823,24,69,10,22,63,1,9,1,1,4,33,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,824,132,129,130,131,102,103,825,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,826,132,827,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,828,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,829,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,830,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,831,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,832,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,70,833,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,3,70,91,12,-300,-300,-300,23,69,6,26,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,3,6,63,35,689,690,834,3,57,5,1,835,111,112,5,6,63,1,5,29,-383,-383,-383,-383,-383,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,836,-259,-259,-259,-259,-259,5,6,63,1,5,29,-384,-384,-384,-384,-384,3,57,5,1,837,111,112,5,6,63,1,5,29,-412,-412,-412,-412,-412,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,566,838,-259,-259,-259,-259,-259,5,6,63,1,5,29,-413,-413,-413,-413,-413,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,2,69,1,579,839,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,3,6,63,1,587,588,840,5,6,63,1,5,46,-158,-158,-158,-158,-158,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,5,6,63,1,5,20,-162,-162,-162,-162,-162,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,841,-259,-259,-259,-259,-259,1,95,842,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,843,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,95,844,1,90,845,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,846,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,103,76,2,2,847,493,495,496,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,848,156,155,193,192,5,6,63,1,5,29,-122,-122,-122,-122,-122,3,6,63,1,617,618,849,26,6,63,1,5,26,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,132,-121,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,29,-124,-124,-124,-124,-124,11,6,63,1,5,12,1,1,3,4,8,31,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,850,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,3,6,63,26,721,722,851,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,852,-259,-259,-259,-259,-259,3,6,63,26,721,722,853,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,854,-259,-259,-259,-259,-259,4,62,1,2,2,-64,-64,-64,-64,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,131,-330,-330,-330,855,-330,-330,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,856,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,131,-331,-331,-331,-331,-331,-331,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,131,-335,-335,-335,-335,-335,-335,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,131,-339,-339,-339,-339,-339,-339,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,131,-343,-343,-343,-343,-343,-343,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,857,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,858,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,1,647,648,859,6,6,63,1,5,62,2,-219,-219,-219,-219,-219,-219,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,860,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,861,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,862,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,863,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,1,157,864,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,3,6,63,1,689,690,865,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,3,6,63,1,697,698,866,5,6,63,1,5,37,-191,-191,-191,-191,-191,5,6,63,1,5,46,-156,-156,-156,-156,-156,3,6,63,1,721,722,867,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,26,6,63,1,5,20,6,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,7,1,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,868,610,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,869,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,103,870,5,6,63,1,5,29,-118,-118,-118,-118,-118,1,90,871,11,6,63,1,5,12,1,1,3,4,8,31,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,3,6,63,1,721,722,872,11,6,63,1,5,12,1,1,3,4,8,31,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,3,6,63,1,721,722,873,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,874,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,875,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,131,-337,-337,-337,-337,-337,-337,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,131,-341,-341,-341,-341,-341,-341,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,62,-240,-240,-240,-240,-240,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,876,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,877,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,57,5,1,878,111,112,5,6,63,1,5,29,-385,-385,-385,-385,-385,5,6,63,1,5,29,-414,-414,-414,-414,-414,5,6,63,1,5,20,-163,-163,-163,-163,-163,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,881,-334,879,-334,-334,-334,-334,-334,880,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,131,-334,-334,-334,-334,-334,-334,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,882,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,11,6,63,1,5,12,1,1,3,4,8,31,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,1,95,883,1,95,884,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,131,-332,-332,-332,-332,-332,-332,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,131,-333,-333,-333,-333,-333,-333,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,1,104,885,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,886,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,8,6,63,1,25,9,8,9,16,-260,-260,-260,-260,-260,-260,-260,-260,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,881,-336,887,-336,-336,-336,-336,-336,888,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,131,-336,-336,-336,-336,-336,-336,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,11,6,63,1,5,12,1,1,3,4,8,31,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,11,6,63,1,5,12,1,1,3,4,8,31,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,881,-335,889,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,131,-335,-335,-335,-335,-335,-335,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,104,890,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,891,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,104,892,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,881,-337,893,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,131,-337,-337,-337,-337,-337,-337,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,1,104,894,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112],_=[],c=0,n,u,l,i;while(c<f.length){n=f[c++],u={},l=0,i=[];while(n--)l+=f[c++],i.push(l);for(l of i)u[l]=f[c++];_.push(u)}return _})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,47,1,47,1,58,1,60,1,57,1,57,3,64,1,64,2,66,3,66,5,66,2,66,1,49,1,49,3,74,3,74,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,37,1,37,1,37,1,85,1,85,1,82,1,82,1,82,3,82,3,82,4,82,6,82,4,82,6,82,5,82,5,82,7,82,7,82,4,82,5,82,7,84,10,84,12,84,11,84,13,84,4,107,0,107,1,107,3,107,4,107,6,108,1,108,1,108,3,108,5,108,3,108,5,110,1,110,1,110,1,99,1,99,3,99,4,99,1,109,2,109,2,115,1,115,1,115,1,115,1,115,1,115,2,115,2,115,2,115,2,115,3,115,3,115,4,115,6,115,5,115,5,115,7,115,7,46,4,120,0,120,1,120,3,120,4,120,6,122,3,122,5,122,2,93,1,93,3,93,4,93,6,124,1,124,3,124,3,124,5,125,1,125,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,83,2,83,3,83,4,127,1,127,3,127,4,127,4,127,6,129,1,129,2,128,1,128,2,126,1,126,2,131,1,131,2,132,1,132,1,40,5,91,3,91,2,91,2,91,1,32,6,32,3,15,5,15,2,35,5,35,2,140,1,140,1,136,0,136,1,136,3,136,4,136,6,143,1,143,3,143,2,143,1,144,1,144,1,144,1,144,1,145,2,41,2,41,2,41,3,41,2,41,2,117,2,117,4,147,1,147,3,147,4,147,4,147,6,130,1,130,1,130,1,130,1,148,1,148,3,43,1,43,1,86,2,44,3,44,4,44,6,45,3,45,3,79,2,79,3,39,3,39,5,94,0,94,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,158,3,158,4,160,4,160,5,160,2,162,3,162,5,22,1,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,167,3,167,3,167,3,167,2,26,5,26,7,26,4,26,6,171,1,171,2,172,3,172,4,174,2,174,4,174,2,174,4,24,2,24,2,24,2,24,1,177,2,177,2,177,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,184,1,184,3,102,1,102,3,185,1,185,1,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,34,2,28,4,28,6,192,1,192,3,192,2,193,1,193,1,193,1,193,2,193,2,29,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,200,1,200,3,200,4,200,4,200,6,201,1,201,3,201,1,201,3,198,1,199,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,206,1,206,3,206,4,206,4,206,6,208,1,208,3,208,3,208,1,208,3,36,2,36,2,36,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,42,2],ruleActions:(f,_,c,n)=>{let u=_,l=_.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[l]];case 3:case 61:case 115:case 153:case 160:case 192:case 196:case 216:case 236:case 245:case 297:case 348:case 364:case 381:case 410:return[u[l]];case 4:case 116:case 154:case 161:case 217:case 237:case 246:case 365:case 382:case 411:return[...u[l-2],u[l]];case 5:case 63:case 199:case 366:return u[l-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 51:case 52:case 53:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 89:case 90:case 91:case 92:case 93:case 94:case 95:case 120:case 125:case 126:case 127:case 128:case 131:case 134:case 135:case 136:case 137:case 138:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 178:case 179:case 180:case 181:case 182:case 187:case 213:case 214:case 220:case 224:case 225:case 226:case 227:case 241:case 242:case 243:case 259:case 260:case 274:case 277:case 278:case 308:case 346:case 350:case 351:case 367:case 368:case 369:case 386:case 388:case 390:case 415:case 418:return u[l];case 49:case 177:return"undefined";case 50:case 176:return"null";case 54:case 183:return["symbol",u[l]];case 60:return["str",...u[l-1]];case 62:case 193:case 197:case 298:return[...u[l-1],u[l]];case 64:case 235:case 239:case 384:case 413:return u[l-2];case 65:return"";case 68:return["regex",u[l-1]];case 69:return["regex-index",u[l-2],u[l]];case 70:return["regex-index",u[l],null];case 71:case 123:return["=",u[l-2],u[l]];case 72:return["=",u[l-3],u[l]];case 73:case 124:return["=",u[l-4],u[l-1]];case 74:return["state",u[l-2],u[l]];case 75:return["state",u[l-3],u[l]];case 76:return["state",u[l-4],u[l-1]];case 77:case 79:return["computed",u[l-2],u[l]];case 78:return["computed",u[l-3],u[l]];case 80:return["readonly",u[l-2],u[l]];case 81:return["readonly",u[l-3],u[l]];case 82:return["readonly",u[l-4],u[l-1]];case 83:case 85:return["effect",u[l-2],u[l]];case 84:return["effect",u[l-3],u[l]];case 86:case 87:case 88:return["effect",null,u[l]];case 96:case 143:return[".",u[l-2],u[l]];case 97:case 144:return["?.",u[l-2],u[l]];case 98:case 100:case 145:return["[]",u[l-3],u[l-1]];case 99:case 101:case 146:return["[]",u[l-5],u[l-2]];case 102:case 147:return[".{}",u[l-4],...u[l-2]];case 103:case 148:return["?.{}",u[l-4],...u[l-2]];case 104:case 149:return[".{}",u[l-6],...u[l-3]];case 105:case 150:return["?.{}",u[l-6],...u[l-3]];case 106:return[u[l-1][0],u[l-3],...u[l-1].slice(1)];case 107:return["optindex",u[l-4],u[l-1]];case 108:return["optindex",u[l-6],u[l-2]];case 109:return["object-comprehension",u[l-8],u[l-6],[["for-of",u[l-4],u[l-2],!1]],[]];case 110:return["object-comprehension",u[l-10],u[l-8],[["for-of",u[l-6],u[l-4],!1]],[u[l-2]]];case 111:return["object-comprehension",u[l-9],u[l-7],[["for-of",u[l-4],u[l-2],!0]],[]];case 112:return["object-comprehension",u[l-11],u[l-9],[["for-of",u[l-6],u[l-4],!0]],[u[l-2]]];case 113:return["object",...u[l-2]];case 114:case 152:case 194:case 215:case 234:return[];case 117:case 155:case 162:case 218:case 238:case 383:case 412:return[...u[l-3],u[l]];case 118:case 156:case 163:case 219:case 240:case 385:case 414:return[...u[l-5],...u[l-2]];case 119:return[null,u[l],u[l]];case 121:case 157:return[":",u[l-2],u[l]];case 122:case 158:return[":",u[l-4],u[l-1]];case 129:return["dynamicKey",u[l-1]];case 130:return["[]","this",u[l-1]];case 132:case 133:case 159:case 228:return["...",u[l]];case 139:case 232:return["super",...u[l]];case 140:case 141:case 142:case 230:case 233:return[u[l-1],...u[l]];case 151:return["map-literal",...u[l-2]];case 164:return[u[l],u[l],null];case 165:return[u[l-2],u[l],null];case 166:return[u[l-2],u[l-2],u[l]];case 167:return[u[l-4],u[l-2],u[l]];case 184:return["array"];case 185:return["array",...u[l-1]];case 186:return["array",...u[l-2],...u[l-1]];case 188:return[...u[l-2],...u[l]];case 189:return[...u[l-3],...u[l]];case 190:return[...u[l-2],...u[l-1]];case 191:return[...u[l-5],...u[l-4],...u[l-2],...u[l-1]];case 195:return[...u[l]];case 198:return null;case 200:return"..";case 201:case 244:return"...";case 202:return[u[l-2],u[l-3],u[l-1]];case 203:case 438:case 440:case 441:case 455:case 457:return[u[l-1],u[l-2],u[l]];case 204:return[u[l],u[l-1],null];case 205:return[u[l-1],null,u[l]];case 206:return[u[l],null,null];case 207:return["def",u[l-4],u[l-2],u[l]];case 208:return["def",u[l-1],[],u[l]];case 209:case 211:return[u[l-1],u[l-3],u[l]];case 210:case 212:return[u[l-1],[],u[l]];case 221:case 347:return["default",u[l-2],u[l]];case 222:return["rest",u[l]];case 223:return["expansion"];case 229:return["tagged-template",u[l-1],u[l]];case 231:return["optcall",u[l-2],...u[l]];case 247:case 248:return"this";case 249:return[".","this",u[l]];case 250:return[".","super",u[l]];case 251:return["[]","super",u[l-1]];case 252:return["[]","super",u[l-2]];case 253:return[".","new",u[l]];case 254:return[".","import",u[l]];case 255:return["block"];case 256:return["block",...u[l-1]];case 257:return u[l-1].length===1?(Array.isArray(u[l-1][0])&&u[l-1][0][0]==="="&&(u[l-1][0].parenthesized=!0),u[l-1][0]):["block",...u[l-1]];case 258:return u[l-2].length===1?(Array.isArray(u[l-2][0])&&u[l-2][0][0]==="="&&(u[l-2][0].parenthesized=!0),u[l-2][0]):["block",...u[l-2]];case 261:return["return",u[l]];case 262:return["return",u[l-1]];case 263:return["return"];case 264:return["throw",u[l]];case 265:return["throw",u[l-1]];case 266:return["yield"];case 267:return["yield",u[l]];case 268:return["yield",u[l-1]];case 269:return["yield-from",u[l]];case 270:case 272:return["if",u[l-1],u[l]];case 271:case 273:return["if",u[l-2],u[l-1],u[l]];case 275:return["if",["!",u[l-1]],u[l]];case 276:return["if",["!",u[l-3]],u[l-2],u[l]];case 279:case 280:return["if",u[l],[u[l-2]]];case 281:return["?:",u[l-4],u[l-6],u[l-1]];case 282:return["?:",u[l-2],u[l-4],u[l]];case 283:case 284:return["if",["!",u[l]],[u[l-2]]];case 285:return["try",u[l]];case 286:return["try",u[l-1],u[l]];case 287:return["try",u[l-2],u[l]];case 288:return["try",u[l-3],u[l-2],u[l]];case 289:case 290:case 291:case 420:case 423:case 425:return[u[l-1],u[l]];case 292:return[null,u[l]];case 293:return["switch",u[l-3],u[l-1],null];case 294:return["switch",u[l-5],u[l-3],u[l-1]];case 295:return["switch",null,u[l-1],null];case 296:return["switch",null,u[l-3],u[l-1]];case 299:return["when",u[l-1],u[l]];case 300:return["when",u[l-2],u[l-1]];case 301:return["while",u[l]];case 302:return["while",u[l-2],u[l]];case 303:return["while",["!",u[l]]];case 304:return["while",["!",u[l-2]],u[l]];case 305:return u[l-1].length===2?[u[l-1][0],u[l-1][1],u[l]]:[u[l-1][0],u[l-1][1],u[l-1][2],u[l]];case 306:case 307:return u[l].length===2?[u[l][0],u[l][1],[u[l-1]]]:[u[l][0],u[l][1],u[l][2],[u[l-1]]];case 309:return["loop",u[l]];case 310:return["loop",[u[l]]];case 311:return["loop-n",u[l-1],u[l]];case 312:return["for-in",u[l-3],u[l-1],null,null,u[l]];case 313:return["for-in",u[l-5],u[l-3],null,u[l-1],u[l]];case 314:return["for-in",u[l-5],u[l-3],u[l-1],null,u[l]];case 315:return["for-in",u[l-7],u[l-5],u[l-1],u[l-3],u[l]];case 316:return["for-in",u[l-7],u[l-5],u[l-3],u[l-1],u[l]];case 317:return["for-of",u[l-3],u[l-1],!1,null,u[l]];case 318:return["for-of",u[l-5],u[l-3],!1,u[l-1],u[l]];case 319:return["for-of",u[l-3],u[l-1],!0,null,u[l]];case 320:return["for-of",u[l-5],u[l-3],!0,u[l-1],u[l]];case 321:return["for-as",u[l-3],u[l-1],!1,null,u[l]];case 322:return["for-as",u[l-5],u[l-3],!1,u[l-1],u[l]];case 323:case 325:return["for-as",u[l-3],u[l-1],!0,null,u[l]];case 324:case 326:return["for-as",u[l-5],u[l-3],!0,u[l-1],u[l]];case 327:return["for-in",[],u[l-1],null,null,u[l]];case 328:return["for-in",[],u[l-3],u[l-1],null,u[l]];case 329:return["comprehension",u[l-4],[["for-in",u[l-2],u[l],null]],[]];case 330:return["comprehension",u[l-6],[["for-in",u[l-4],u[l-2],null]],[u[l]]];case 331:return["comprehension",u[l-6],[["for-in",u[l-4],u[l-2],u[l]]],[]];case 332:return["comprehension",u[l-8],[["for-in",u[l-6],u[l-4],u[l]]],[u[l-2]]];case 333:return["comprehension",u[l-8],[["for-in",u[l-6],u[l-4],u[l-2]]],[u[l]]];case 334:return["comprehension",u[l-4],[["for-of",u[l-2],u[l],!1]],[]];case 335:return["comprehension",u[l-6],[["for-of",u[l-4],u[l-2],!1]],[u[l]]];case 336:return["comprehension",u[l-5],[["for-of",u[l-2],u[l],!0]],[]];case 337:return["comprehension",u[l-7],[["for-of",u[l-4],u[l-2],!0]],[u[l]]];case 338:return["comprehension",u[l-4],[["for-as",u[l-2],u[l],!1,null]],[]];case 339:return["comprehension",u[l-6],[["for-as",u[l-4],u[l-2],!1,null]],[u[l]]];case 340:return["comprehension",u[l-5],[["for-as",u[l-2],u[l],!0,null]],[]];case 341:return["comprehension",u[l-7],[["for-as",u[l-4],u[l-2],!0,null]],[u[l]]];case 342:return["comprehension",u[l-4],[["for-as",u[l-2],u[l],!0,null]],[]];case 343:return["comprehension",u[l-6],[["for-as",u[l-4],u[l-2],!0,null]],[u[l]]];case 344:return["comprehension",u[l-2],[["for-in",[],u[l],null]],[]];case 345:return["comprehension",u[l-4],[["for-in",[],u[l-2],u[l]]],[]];case 349:case 387:case 389:case 416:case 417:case 419:return[u[l-2],u[l]];case 352:return["class",null,null];case 353:return["class",null,null,u[l]];case 354:return["class",null,u[l]];case 355:return["class",null,u[l-1],u[l]];case 356:return["class",u[l],null];case 357:return["class",u[l-1],null,u[l]];case 358:return["class",u[l-2],u[l]];case 359:return["class",u[l-3],u[l-1],u[l]];case 360:return["enum",u[l-1],u[l]];case 361:return["schema",u[l]];case 362:return["component",null,["block",...u[l-1]]];case 363:return["component",u[l-3],["block",...u[l-1]]];case 370:return["offer",u[l]];case 371:return["accept",u[l]];case 372:case 373:return["render",u[l]];case 374:case 377:return["import","{}",u[l]];case 375:case 376:return["import",u[l-2],u[l]];case 378:return["import",u[l-4],u[l]];case 379:return["import",u[l-4],u[l-2],u[l]];case 380:return["import",u[l-7],u[l-4],u[l]];case 391:return["*",u[l]];case 392:return["export","{}"];case 393:return["export",u[l-2]];case 394:case 395:case 396:case 397:case 401:case 402:case 403:case 404:return["export",u[l]];case 398:return["export",["=",u[l-2],u[l]]];case 399:return["export",["=",u[l-3],u[l]]];case 400:return["export",["=",u[l-4],u[l-1]]];case 405:return["export-default",u[l]];case 406:return["export-default",u[l-1]];case 407:return["export-all",u[l]];case 408:return["export-from","{}",u[l]];case 409:return["export-from",u[l-4],u[l]];case 421:case 422:case 424:case 460:return["do-iife",u[l]];case 426:return["-",u[l]];case 427:return["+",u[l]];case 428:return["?",u[l-1]];case 429:return["presence",u[l-1]];case 430:return["await",u[l]];case 431:return["await",u[l-1]];case 432:return["--",u[l],!1];case 433:return["++",u[l],!1];case 434:return["--",u[l-1],!0];case 435:return["++",u[l-1],!0];case 436:return["+",u[l-2],u[l]];case 437:return["-",u[l-2],u[l]];case 439:return["**",u[l-2],u[l]];case 442:return["&",u[l-2],u[l]];case 443:return["^",u[l-2],u[l]];case 444:return["|",u[l-2],u[l]];case 445:case 446:case 447:case 448:case 449:case 450:return["control",u[l-1],u[l-2],u[l]];case 451:return["&&",u[l-2],u[l]];case 452:return["||",u[l-2],u[l]];case 453:return["??",u[l-2],u[l]];case 454:return["|>",u[l-2],u[l]];case 456:return["?:",u[l-4],u[l-2],u[l]];case 458:return[u[l-3],u[l-4],u[l-1]];case 459:return[u[l-2],u[l-3],u[l]]}},parseError(f,_){let c,n,u,l,i,w,D;if(_.recoverable)return this.trace(f);else throw u=(_.line||0)+1,c=_.loc?.c||0,D=_.token?` (token: ${_.token})`:"",w=_.text?` near '${_.text}'`:"",l=`line ${u}, column ${c}`,i=`Parse error at ${l}${D}${w}: ${f}`,n=Error(i),n.hash=_,n},parse(f){let _,c,n,u,l,i,w,D,h,A,R,U,$,z,M,F,H,Q,O,W,K,Y,q,y,Z,J,X,N;[K,N,R]=[[0],[null],[]],[z,J,y,q,H]=[this.parseTable,"",0,0,0],[c,_]=[2,1],h=Object.create(this.lexer),O={ctx:{}};for(let S in this.ctx){if(!Object.hasOwn(this.ctx,S))continue;let I=this.ctx[S];O.ctx[S]=I}if(h.setInput(f,O.ctx),[O.ctx.lexer,O.ctx.parser]=[h,this],h.loc==null)h.loc={};Z=h.loc,R.push(Z),this.parseError=typeof O.ctx.parseError==="function"?O.ctx.parseError:Object.getPrototypeOf(this).parseError,D=()=>{let S;if(S=h.lex()||_,typeof S!=="number")S=this.symbolIds[S]||S;return S},Y=M=W=n=F=$=w=U=l=null,Q={};while(!0){if(W=K[K.length-1],Y==null)Y=D();if(n=z[W]?.[Y],n==null){if(u="",!H)l=(()=>{let S=[];for(let I in z[W]){if(!Object.hasOwn(z[W],I))continue;if(this.tokenNames[I]&&I>c)S.push(`'${this.tokenNames[I]}'`)}return S})();throw u=(()=>{if(h.showPosition)return`Parse error on line ${y+1}:
|
|
1029
|
-
${
|
|
1030
|
-
Expecting ${l.join(", ")}, got '${this.tokenNames[Y]||Y}'`;else return`Parse error on line ${y+1}: Unexpected ${Y===_?"end of input":`'${this.tokenNames[Y]||Y}'`}`,this.parseError(u,{text:h.match,token:this.tokenNames[Y]||Y,line:h.line,loc:Z,expected:l})})(),Error(u)}if(n>0)if(K.push(Y,n),N.push(h.text),R.push(h.loc),Y=null,!M){if([q,J,y,Z]=[h.len,h.text,h.line,h.loc],H>0)H--}else[Y,M]=[M,null];else if(n<0){if(w=this.ruleTable[-n*2+1],Q.$=N[N.length-w],A=R[R.length-(w||1)],Q._$={r:A.r,c:A.c},F=this.ruleActions.call(Q,-n,N,R,O.ctx),F!=null)Q.$=F;if(Array.isArray(Q.$))Q.$.loc=Q._$;if(w)K.length-=w*2,N.length-=w,R.length-=w;K.push(this.ruleTable[-n*2]),N.push(Q.$),R.push(Q._$),U=z[K[K.length-2]][K[K.length-1]],K.push(U)}else if(n===0)return N[N.length-1]}},trace(){},ctx:{}},K4=(f={})=>{let _=Object.create(H4);return Object.defineProperty(_,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),_},F1=K4();var Q0=F1.parse.bind(F1);var K2=null;function p2(f){K2=f}var Q4=new Set(["input","shape","model","mixin","enum"]),e2="input",Y4=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"]),y4=new Set(["TERMINATOR","INDENT","OUTDENT","=","+=","-=","*=","/=","%=","**=","//=","%%=","?=","??=","&&=","||=","&=","|=","^=","<<=",">>=",">>>=","READONLY_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","THEN","IF","UNLESS","UNARY","!","NOT"]);function c2(f,_){if(f)f.prototype.rewriteSchema=function(){Z4(this)},o1._LexerCtor=f;if(_)_.prototype.emitSchema=function(c,n,u){return r4(this,c,n,u)},_.prototype.getSchemaRuntime=function(){let c=this.options?.schemaMode||"migration";return l5({mode:c})}}var x2=new Set(["defaultMaxString"]);function Z4(f){let _=f.tokens,c={defaultMaxString:null},n=0,u=0;while(u<_.length){let l=_[u];if(l[0]==="INDENT")n++;else if(l[0]==="OUTDENT")n--;let i=q4(_,u,c,n);if(i>0){_.splice(u,i);continue}if(J4(_,u))G4(f,_,u,c);u++}}function q4(f,_,c,n){let u=f[_];if(!u||u[0]!=="IDENTIFIER"||u[1]!=="schema")return 0;if(f[_+1]?.[0]!==".")return 0;let l=f[_+2];if(!l||l[0]!=="PROPERTY")return 0;if(f[_+3]?.[0]!=="=")return 0;let i=f[_-1];if(i){let R=i[0];if(R!=="TERMINATOR"&&R!=="INDENT"&&R!=="OUTDENT")return 0}let w=l[1];if(!x2.has(w))throw C(l,`Unknown schema pragma 'schema.${w}'. Known pragmas: ${[...x2].join(", ")}.`);if(n>0)throw C(l,`Schema pragma 'schema.${w}' must be declared at file top level. It was found inside a nested block (function / class / if / loop body), where it would leak into later top-level schemas.`);let D=f[_+4];if(!D||D[0]!=="NUMBER")throw C(D||l,`Pragma 'schema.${w}' requires a number literal. Example: schema.${w} = 100.`);let h=Number(D[1]);if(!Number.isFinite(h)||h<0||!Number.isInteger(h))throw C(D,`Pragma 'schema.${w}' expects a non-negative integer (got ${D[1]}). Use 0 to disable.`);c[w]=h===0?null:h;let A=_+5;if(f[A]?.[0]==="TERMINATOR")A++;return A-_}function J4(f,_){let c=f[_];if(!c||c[0]!=="IDENTIFIER"||c[1]!=="schema")return!1;let n=f[_-1];if(n){let l=n[0];if(l==="."||l==="?.")return!1;if(n[0]==="IDENTIFIER"||n[0]==="PROPERTY"||n[0]===")"||n[0]==="]"||n[0]==="}"||n[0]==="STRING"||n[0]==="NUMBER"){if(!y4.has(l))return!1}}let u=_+1;if(f[u]?.[0]==="SYMBOL")u++;if(f[u]?.[0]==="TERMINATOR"){if(f[u][1]===";")return!0;u++}return f[u]?.[0]==="INDENT"}function G4(f,_,c,n){let u=_[c],l=null,i=e2,w=c+1;if(_[w]?.[0]==="SYMBOL"){l=_[w];let $=l[1];if(!Q4.has($))throw C(l,`Unknown schema kind :${$}. Expected one of :input, :shape, :model, :mixin, :enum.`);i=$,w++}let D,h;if(_[w]?.[0]==="TERMINATOR"&&_[w][1]===";"){let $=w+1,z=$,M=0,F=_[$]?.loc?.r??null;while(z<_.length){let H=_[z],Q=H[0];if(M===0&&F!=null&&H.loc&&H.loc.r>F)break;if(Q==="("||Q==="["||Q==="{"||Q==="CALL_START"||Q==="INDEX_START"||Q==="PARAM_START")M++;else if(Q===")"||Q==="]"||Q==="}"||Q==="CALL_END"||Q==="INDEX_END"||Q==="PARAM_END")M--;else if(M===0&&Q==="TERMINATOR"&&H[1]!==";")break;else if(M===0&&(Q==="INDENT"||Q==="OUTDENT"))break;else if(M===0&&Q==="->")throw C(H,"Inline schema body does not support '->' (method/hook/transform). Use the indented form.");else if(M===0&&Q==="EFFECT")throw C(H,"Inline schema body does not support '~>' (computed getter). Use the indented form.");else if(M===0&&Q==="UNARY_MATH"&&H[1]==="!"&&_[z+1]?.[0]==="COMPARE"&&_[z+1][1]===">")throw C(H,"Inline schema body does not support '!>' (eager derived). Use the indented form.");z++}while(z>$&&_[z-1][0]==="TERMINATOR")z--;if(D=_.slice($,z),h=z,!D.length)throw C(u,`Inline schema body is empty. Either add '; field; …' entries after 'schema${l?" :"+i:""};' or switch to the indented form.`)}else{if(_[w]?.[0]==="TERMINATOR")w++;if(_[w]?.[0]!=="INDENT")throw C(u,`Expected indented schema body after 'schema${l?" :"+i:""}'.`);let $=w,z=u5(_,$);if(z<0)throw C(_[$],"Unterminated schema body.");D=_.slice($+1,z),h=z+1}let A=X4(i,D,{schemaLoc:u.loc,kindLoc:l?.loc??null,kind:i,defaultMaxString:n?.defaultMaxString??null}),R=Q2("SCHEMA","schema",u),U=Q2("SCHEMA_BODY",i,u);U.data={descriptor:A},_.splice(c,h-c,R,U)}function X4(f,_,c){let n=[],u=P4(_);if(f===e2&&!c.kindLoc&&u.length>0&&u[0][0]?.[0]==="SYMBOL")f="enum",c.kind="enum";if(f==="enum")for(let l of u)C4(l,n);else{for(let l of u)b4(f,l,n,c);if(f==="mixin")for(let l of n){if(l.tag==="method"||l.tag==="computed"||l.tag==="hook")throw C({loc:l.headerLoc||l.loc},`:mixin schemas are fields-only. '${l.name}' is a ${l.tag}; move it to a :shape or :model.`);if(l.tag==="ensure")throw C({loc:l.headerLoc||l.loc},":mixin schemas don't accept @ensure refinements. Move the invariant to a :shape or :model that composes this mixin.");if(l.tag==="directive"&&l.name!=="mixin")throw C({loc:l.loc},`:mixin schemas only accept '@mixin Name' directives. '@${l.name}' is not allowed.`)}else if(f==="input")for(let l of n){if(l.tag==="method"||l.tag==="computed"||l.tag==="hook")throw C({loc:l.headerLoc||l.loc},`:input schemas are fields-only. '${l.name}' is a ${l.tag}; use :shape or :model if you need behavior.`);if(l.tag==="directive"&&l.name!=="mixin")throw C({loc:l.loc},`:input schemas only accept '@mixin Name' and '@ensure'. '@${l.name}' is not allowed.`)}else if(f==="shape")for(let l of n){if(l.tag==="hook")throw C({loc:l.headerLoc||l.loc},`:shape schemas don't have lifecycle hooks. '${l.name}' runs only on :model; move it or remove it.`);if(l.tag==="directive"&&l.name!=="mixin")throw C({loc:l.loc},`:shape schemas only accept '@mixin Name'. '@${l.name}' is :model-only.`)}}return{kind:f,loc:c.schemaLoc,kindLoc:c.kindLoc,entries:n}}function P4(f){let _=[],c=[],n=0;for(let u of f){let l=u[0];if(l==="INDENT")n++;if(l==="OUTDENT")n--;if(l==="TERMINATOR"&&n===0){if(c.length)_.push(c),c=[];continue}c.push(u)}if(c.length)_.push(c);return _}var S4=new Set(["string","email","url","phone","zip"]);function b4(f,_,c,n){let u=_[0];if(!u)return;if(u[0]==="@"){let Y=_[1];if(!Y||Y[0]!=="IDENTIFIER"&&Y[0]!=="PROPERTY")throw C(u,"Expected directive name after '@'.");let q=_.slice(2),y=Y[1];if(y==="ensure"){let J=B4(q,u);for(let X of J)c.push({tag:"ensure",name:"ensure",message:X.message,paramTokens:X.paramTokens,bodyTokens:X.bodyTokens,loc:X.loc,headerLoc:u.loc});return}let Z=null;if(y==="belongs_to"||y==="has_many"||y==="has_one"||y==="one"||y==="many"||y==="mixin"){let J=q[0];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")){let X=J.data?.predicate===!0;if(!X&&q[1]?.[0]==="?")X=!0;Z=[{target:J[1],optional:X}]}}c.push({tag:"directive",name:y,args:Z,argTokens:q,loc:u.loc});return}if(u[0]==="PROPERTY"){I4(f,u,_,c);return}if(u[0]!=="IDENTIFIER")throw C(u,`Unexpected ${u[0]} at schema top level. Allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), or computed getters ('name: ~> body').`);let l=u[1];if(_[1]?.[0]===":")throw C(_[1],"Schema fields use 'name type' (space, no colon). For methods or computed use 'name: -> body' or 'name: ~> body'.");let i=k4(u),w=1;while(w<_.length){let Y=_[w];if(!(_[w-1]&&!_[w-1].spaced))break;if(Y[0]==="#"||Y[0]==="?"||Y[0]==="!"){i.push(Y[0]),w++;continue}break}let D=_[w];if(D?.[0]===":")throw C(D,"Schema fields use 'name type' (space, no colon). Got 'name:'. For methods/computed use 'name: -> body' or 'name: ~> body'.");let h="string",A=null;if(D?.[0]==="IDENTIFIER")h=D[1],w++;else if(D?.[0]==="STRING"){A=[JSON.parse(D[1])],w++;while(_[w]?.[0]==="|"&&_[w+1]?.[0]==="STRING")w++,A.push(JSON.parse(_[w][1])),w++;if(_[w]?.[0]==="|"){let Y=_[w+1],q=Y?.[0]??"<end>";throw C(Y||_[w],`Literal unions contain string literals only. '${q}' is not allowed as a union member. Use the '?' modifier for nullability.`)}if(A.length<2)throw C(D,`Literal union needs at least two string literals. Use '${JSON.stringify(A[0])}' as a default with '[${JSON.stringify(A[0])}]' instead.`);h="literal-union"}let R=!1,U=_[w]?.[0],$=_[w+1]?.[0];if((U==="["||U==="INDEX_START")&&($==="]"||$==="INDEX_END"))R=!0,w+=2;let z=_.slice(w);if((D?.[0]==="IDENTIFIER"||D?.[0]==="STRING")&&z[0]?.[0]==="->")throw C(z[0],`Field '${l}' has a transform after the type; a comma is required before '->'. Write '${l} ${h}, -> …'.`);let F=null,H=null,Q=null,O=null,W=null;if(z.length>0){if(z[0]?.[0]===",")z=z.slice(1);let Y=x1(z);for(let q=0;q<Y.length;q++){let y=Y[q];while(y.length&&(y[0][0]==="INDENT"||y[0][0]==="TERMINATOR"))y=y.slice(1);if(!y.length)continue;if(y[0][0]!=="->"){let J=E4(y);if(J>0)throw C(y[J],`Field '${l}' has a transform after other content; a comma is required before '->'. Write 'name! <constraints>, -> <body>'.`)}let Z=y[0];if(Z[0]!=="->"){while(y.length&&(y[y.length-1][0]==="OUTDENT"||y[y.length-1][0]==="TERMINATOR"))y=y.slice(0,-1);if(!y.length)continue;Z=y[0]}if(Z[0]==="["||Z[0]==="INDEX_START"){if(F)throw C(Z,`Field '${l}' has more than one '[…]' constraint. At most one default / regex bracket per field.`);F=y}else if(Z[0]==="{"){if(H)throw C(Z,`Field '${l}' has more than one '{…}' attrs bracket.`);H=y}else if(N4(y)){if(Q)throw C(Z,`Field '${l}' has more than one range constraint. Only one 'min..max' per field.`);Q=y}else if(Z[0]==="REGEX"&&y.length===1){if(O)throw C(Z,`Field '${l}' has more than one regex constraint.`);O=Z}else if(Z[0]==="->"){if(q!==Y.length-1)throw C(Z,`Transform '-> …' must be the last element on the field line for '${l}'.`);W=y.slice(1)}else throw C(Z,`Unexpected trailer for field '${l}'. Expected '[…]' default, '{…}' attrs, '/regex/', 'min..max' range, or '-> transform'.`)}}if(R&&A)throw C(D,"Array-of-literal-union is not supported. Use 'string[]' if you need an array of strings.");let K=null;if(n?.defaultMaxString!=null&&!O&&!A&&S4.has(h))K=n.defaultMaxString;c.push({tag:"field",name:l,modifiers:i,typeName:h,array:R,literals:A,constraintTokens:F,attrsTokens:H,rangeTokens:Q,regexToken:O,transformTokens:W,defaultMax:K,loc:u.loc})}function E4(f){let _=0;for(let c=0;c<f.length;c++){let n=f[c][0];if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="PARAM_START")_++;else if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="PARAM_END")_--;else if(_===0&&n==="->")return c}return-1}function N4(f){let _=0,c=!1;if(f[_]?.[0]==="-"&&f[_+1]?.[0]==="NUMBER")_+=2,c=!0;else if(f[_]?.[0]==="NUMBER")_++,c=!0;if(f[_]?.[0]!=="..")return!1;_++;let n=!1;if(f[_]?.[0]==="-"&&f[_+1]?.[0]==="NUMBER")_+=2,n=!0;else if(f[_]?.[0]==="NUMBER")_++,n=!0;return(c||n)&&_===f.length}function I4(f,_,c,n){let u=_[1],l=c[1];if(!l||l[0]!==":")throw C(_,`Expected ':' after '${u}' before arrow.`);let i=c[2],w=c[3],D,h,A;if(i&&i[0]==="->")D="->",h=i.loc,A=3;else if(i&&i[0]==="EFFECT")D="~>",h=i.loc,A=3;else if(i&&i[0]==="UNARY_MATH"&&i[1]==="!"&&w&&w[0]==="COMPARE"&&w[1]===">"&&!i.spaced)D="!>",h=i.loc,A=4;else throw C(l,`Schema top-level '${u}:' must be followed by '->' (method/hook), '~>' (computed getter), or '!>' (eager derived).`);let R=c.slice(A),U=Y4.has(u),$;if(D==="~>")$="computed";else if(D==="!>")$="derived";else if(f==="model"&&U)$="hook";else $="method";n.push({tag:$,name:u,arrow:D,paramTokens:[],bodyTokens:R,headerLoc:_.loc,arrowLoc:h})}function B4(f,_){let c=f;if(!c.length)throw C(_,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");if(c[0]?.[0]==="CALL_START"&&c[c.length-1]?.[0]==="CALL_END")c=c.slice(1,-1);if(!c.length)throw C(_,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");let n=c[0];if(n[0]==="["||n[0]==="INDEX_START"){let l=T4(c,n),i=a4(l);if(i.length===0)throw C(n,"@ensure [...] must contain at least one 'message, fn' pair.");if(i.length%2!==0)throw C(n,`@ensure [...] must have pairs of 'message, fn' (got ${i.length} elements; odd count).`);let w=[];for(let D=0;D<i.length;D+=2)w.push(d2(i[D],i[D+1],n));return w}let u=x1(c);if(u.length<2)throw C(n,"@ensure inline form must be 'message, (x) -> body'. Did you forget the comma?");if(u.length>2)throw C(n,`@ensure inline form takes exactly 'message, fn' (got ${u.length} comma-separated parts). Use '@ensure [...]' for multiple refinements.`);return[d2(u[0],u[1],n)]}function T4(f,_){let c=0,n=[];for(let u=0;u<f.length;u++){let l=f[u],i=l[0];if(i==="["||i==="INDEX_START"){if(c++,c===1)continue}if(i==="]"||i==="INDEX_END"){if(c--,c===0){if(u<f.length-1)throw C(f[u+1],"@ensure [...] must be the only argument — extra tokens after ']'.");if(n.length>=2&&n[0][0]==="INDENT"&&n[n.length-1][0]==="OUTDENT"){let w=0,D=!1;for(let h=0;h<n.length;h++)if(n[h][0]==="INDENT")w++;else if(n[h][0]==="OUTDENT"){if(w--,w===0&&h===n.length-1){D=!0;break}if(w===0)break}if(D)n=n.slice(1,-1)}return n}}if(c>=1)n.push(l)}throw C(_,"@ensure: unclosed '['.")}function a4(f){let _=[],c=[],n=0;for(let u of f){let l=u[0];if(l==="("||l==="["||l==="{"||l==="CALL_START"||l==="INDEX_START"||l==="PARAM_START"||l==="INDENT")n++;if(l===")"||l==="]"||l==="}"||l==="CALL_END"||l==="INDEX_END"||l==="PARAM_END"||l==="OUTDENT")n--;if(n===0&&(l===","||l==="TERMINATOR")){if(c.length)_.push(c),c=[];continue}c.push(u)}if(c.length)_.push(c);return _}function d2(f,_,c){if(!f||!f.length)throw C(c,"@ensure: missing message (expected a string literal).");if(f.length!==1||f[0][0]!=="STRING")throw C(f[0]||c,"@ensure: each refinement's first element must be a string literal message.");let n=f[0],u=JSON.parse(n[1]);if(!_||!_.length)throw C(n,"@ensure: missing function after message.");let l=_[0];if(l[0]!=="("&&l[0]!=="PARAM_START")throw C(l,"@ensure: expected '(args) -> body' after the message. Predicates must declare their parameter explicitly — '(u) -> ...'.");let i=1,w=1,D=[];while(w<_.length&&i>0){let R=_[w],U=R[0];if(U==="("||U==="PARAM_START")i++;if(U===")"||U==="PARAM_END"){if(i--,i===0){w++;break}}D.push(R),w++}if(i!==0)throw C(l,"@ensure: unclosed '(' in predicate parameters.");let h=_[w];if(!h||h[0]!=="->")throw C(h||_[w-1]||n,"@ensure: expected '->' after predicate parameters.");let A=_.slice(w+1);if(!A.length)throw C(h,"@ensure: predicate function body is empty.");return{message:u,paramTokens:D,bodyTokens:A,loc:n.loc}}function L4(f,_){if(!f.length)return[];return x1(f).map((n)=>{let u=n.filter((l)=>l[0]!=="TERMINATOR");if(u.length!==1||u[0][0]!=="IDENTIFIER")throw C(u[0]||_,"@ensure: predicate parameters must be plain identifiers.");return u[0][1]})}function C4(f,_){let c=f[0];if(!c)return;if(c[0]==="@"){let l=f[1],i=l&&(l[0]==="IDENTIFIER"||l[0]==="PROPERTY")?l[1]:"directive";throw C(c,`:enum schemas don't accept '@${i}'. Enums hold only :symbol members. Move the invariant to a :shape or :model that uses this enum as a field type.`)}if(c[0]!=="SYMBOL")throw C(c,`Enum member must be a :symbol. Use ':${c[1]??"name"}' for a bare member or ':${c[1]??"name"} value' for a valued one.`);let n=c[1],u=f[1];if(!u){_.push({tag:"enum-member",name:n,value:void 0,loc:c.loc});return}if(u[0]===":")throw C(u,`Enum member ':${n}' — drop the ':' before the value. Use ':${n} value'.`);if(f.length>2)throw C(f[2],`Extra tokens after enum member ':${n}' value.`);_.push({tag:"enum-member",name:n,value:f5(u),loc:c.loc})}function r4(f,_,c,n){let u=c[0],l=j4(u);if(!l)throw Error("schema: missing descriptor on SCHEMA_BODY token");f.usesSchemas=!0;let i=f._schemaName||null,w=[`kind: ${JSON.stringify(l.kind)}`];if(i)w.push(`name: ${JSON.stringify(i)}`);return w.push(`entries: [${l.entries.map((D)=>m4(f,D)).join(", ")}]`),`__schema({${w.join(", ")}})`}function j4(f){if(f&&typeof f==="object"){if(f.descriptor)return f.descriptor;if(f.data?.descriptor)return f.data.descriptor}return null}function m4(f,_){switch(_.tag){case"field":{let c=['tag: "field"',`name: ${JSON.stringify(_.name)}`,`modifiers: ${JSON.stringify(_.modifiers)}`,`typeName: ${JSON.stringify(_.typeName)}`,`array: ${_.array?"true":"false"}`];if(_.literals)c.push(`literals: ${JSON.stringify(_.literals)}`);let n=_.rangeTokens?o4(_.rangeTokens,_):null,u=_.constraintTokens?s4(_.constraintTokens,_):null,l=_.regexToken?t4(_.regexToken):null,i=x4(n,u,l,_);if(i)c.push(`constraints: ${i}`);if(_.transformTokens)c.push(`transform: ${g4(f,_.transformTokens)}`);return`{${c.join(", ")}}`}case"directive":{let c=['tag: "directive"',`name: ${JSON.stringify(_.name)}`],n=p4(_.name,_.argTokens||[]);if(n)c.push(`args: ${n}`);return`{${c.join(", ")}}`}case"ensure":{let c=v4(f,_);return`{${['tag: "ensure"',`message: ${JSON.stringify(_.message)}`,`fn: ${c}`].join(", ")}}`}case"computed":case"method":case"hook":case"derived":{let c=V4(f,_);return`{${[`tag: ${JSON.stringify(_.tag)}`,`name: ${JSON.stringify(_.name)}`,`fn: ${c}`].join(", ")}}`}case"enum-member":{let c=['tag: "enum-member"',`name: ${JSON.stringify(_.name)}`];if(_.value!==void 0)c.push(`value: ${JSON.stringify(_.value)}`);return`{${c.join(", ")}}`}default:return'{tag: "unknown"}'}}function V4(f,_){let c=o1(_.bodyTokens);if(!c)return"(function() {})";let n=["->",[],c];return f.emit(n,"value")}function g4(f,_){let c=o1(_);if(!c)return"(function() { return undefined; })";let n=["->",[],c];return f.emit(n,"value")}function v4(f,_){let c=o1(_.bodyTokens);if(!c)return"(function() { return undefined; })";let u=["->",L4(_.paramTokens,_),c];return f.emit(u,"value")}function s4(f,_){let c=f.slice(1,-1),n=x1(c);if(!n.length)return{c:null};let u=n.map((l)=>k2(l,_));if(u.length===1){let l=u[0];if(l instanceof RegExp)throw C(f[0],`Regex constraints are written bare, not in brackets. Replace '[${l}]' with '${l}'.`);return{c:{default:l}}}if(u.length===2&&typeof u[0]==="number"&&typeof u[1]==="number")throw C(f[0],`Size/value ranges use 'min..max' syntax, not brackets. Replace '[${u[0]}, ${u[1]}]' with '${u[0]}..${u[1]}'.`);if(u.length===3&&u.every((l)=>typeof l==="number"))throw C(f[0],`Range + default is two separate constraints in v2. Replace '[${u[0]}, ${u[1]}, ${u[2]}]' with '${u[0]}..${u[1]}, [${u[2]}]'.`);throw C(f[0],`Constraint bracket takes a single default value in v2. Got ${u.length} elements.`)}function t4(f){let _=f[1],c=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(_);if(!c)throw C(f,`Invalid regex literal ${JSON.stringify(_)}.`);try{return new RegExp(c[1],c[2])}catch(n){throw C(f,`Invalid regex '${_}': ${n.message}`)}}function o4(f,_){let c=0,n=()=>{let w=1;if(f[c]?.[0]==="-")w=-1,c++;let D=f[c++],h=k2([D],_);if(typeof h!=="number")throw C(D,"Range endpoints must be numeric literals.");return w*h},u;if(f[c]?.[0]!=="..")u=n();c++;let l;if(c<f.length)l=n();if(u!==void 0&&l!==void 0&&u>l)throw C(f[0],`Range '${u}..${l}' is reversed. Write the smaller endpoint first.`);let i={};if(u!==void 0)i.min=u;if(l!==void 0)i.max=l;return i}function x4(f,_,c,n){let u=_&&_.c||{},l=f&&f.min===void 0;if(f){if(f.min!==void 0)u.min=f.min;if(f.max!==void 0)u.max=f.max;if(l&&u.min===void 0&&n?.modifiers?.includes("!"))u.min=1}if(c)u.regex=c;if(n?.defaultMax!=null&&u.max===void 0)u.max=n.defaultMax;if(u.min!==void 0&&u.max!==void 0&&u.min>u.max){let i=f&&f.min!==void 0?`range min ${f.min}`:"implicit min=1 from `!`",w=f&&f.max!==void 0?`range max ${f.max}`:`pragma defaultMaxString=${n?.defaultMax}`;throw C({loc:n?.loc},`Field '${n?.name}' would have impossible constraints min=${u.min} > max=${u.max} after sugar is applied (${i} vs ${w}). Write an explicit range or drop the conflicting pragma.`)}if(u.min===void 0&&u.max===void 0&&u.default===void 0&&u.regex===void 0)return null;return d4(u)}function d4(f){let _=[];if(f.min!==void 0)_.push(`min: ${H2(f.min)}`);if(f.max!==void 0)_.push(`max: ${H2(f.max)}`);if(f.default!==void 0)_.push(`default: ${H2(f.default)}`);if(f.regex!==void 0)_.push(`regex: ${f.regex.toString()}`);return _.length?`{${_.join(", ")}}`:null}function H2(f){if(f===null)return"null";if(f===void 0)return"undefined";if(typeof f==="string")return JSON.stringify(f);if(typeof f==="number"||typeof f==="boolean")return String(f);if(f instanceof RegExp)return f.toString();return JSON.stringify(f)}function p4(f,_){if(f==="idStart"&&!_.length)throw C(null,"@idStart requires an integer literal, e.g. @idStart 10001.");if(!_.length)return null;if(f==="belongs_to"||f==="has_many"||f==="has_one"||f==="one"||f==="many"||f==="mixin"){let c=_[0];if(!c||c[0]!=="IDENTIFIER"&&c[0]!=="PROPERTY")throw C(c||_[_.length-1],`@${f} requires a target name.`);let n=c[1],u=c.data?.predicate===!0,l=1;if(!u&&_[l]?.[0]==="?")u=!0,l++;let i=[`target: ${JSON.stringify(n)}`];if(u)i.push("optional: true");return`[{${i.join(", ")}}]`}if(f==="index"){let c=[],n=!1,u=0;if(_[u]?.[0]==="IDENTIFIER"||_[u]?.[0]==="PROPERTY")c.push(_[u][1]),u++;else if(_[u]?.[0]==="["||_[u]?.[0]==="INDEX_START"){let i=[],w=1;u++;while(u<_.length&&w>0){let D=_[u];if(D[0]==="["||D[0]==="INDEX_START")w++;if(D[0]==="]"||D[0]==="INDEX_END"){if(w--,w===0){u++;break}}i.push(D),u++}for(let D of x1(i))if(D[0]&&(D[0][0]==="IDENTIFIER"||D[0][0]==="PROPERTY"))c.push(D[0][1])}if(_[u]?.[0]==="#")n=!0;let l=[`fields: ${JSON.stringify(c)}`];if(n)l.push("unique: true");return`[{${l.join(", ")}}]`}if(f==="idStart"){let c=_[0],n=1,u=c;if(c&&c[0]==="-"&&_[1]&&_[1][0]==="NUMBER")n=-1,u=_[1];if(!u||u[0]!=="NUMBER")throw C(c||_[_.length-1],"@idStart requires an integer literal, e.g. @idStart 10001.");let l=n*Number(u[1]);if(!Number.isInteger(l))throw C(u,"@idStart requires an integer literal; got "+u[1]+".");return"[{value: "+l+"}]"}return null}function k2(f,_){if(!f.length)throw C(null,"Empty constraint value.");let c=f[0],n=c[0];if(f.length===1){if(n==="NUMBER")return Number(c[1]);if(n==="STRING")return JSON.parse(c[1]);if(n==="BOOL")return c[1]==="true";if(n==="NULL")return null;if(n==="UNDEFINED")return;if(n==="REGEX")return e4(c[1]);if(n==="SYMBOL")return c[1]}if(f.length===2&&n==="-"&&f[1][0]==="NUMBER")return-Number(f[1][1]);throw C(c,`Constraint values must be literals (number, string, boolean, null, regex, :symbol). Got ${n}.`)}function e4(f){let _=typeof f==="string"?f:String(f),c=_.match(/^\/(.*)\/([gimsuy]*)$/s);return c?new RegExp(c[1],c[2]):new RegExp(_)}function o1(f){if(!f||!f.length)return null;let _=o1._LexerCtor;if(!_)throw Error("schema: parseBodyTokens called before Lexer was wired");let c=Object.create(_.prototype),n=f.slice();if(n.length>=2&&n[0]?.[0]==="INDENT"){let h=0,A=-1;for(let R=0;R<n.length;R++)if(n[R][0]==="INDENT")h++;else if(n[R][0]==="OUTDENT"){if(h--,h===0){A=R;break}}if(A===n.length-1)n=n.slice(1,-1)}if(c.tokens=n,c.seenFor=c.seenImport=c.seenExport=!1,c.ends=[],c.indent=0,c.outdebt=0,c.indents=[],c.tokens[c.tokens.length-1]?.[0]!=="TERMINATOR")c.tokens.push(Q2("TERMINATOR",`
|
|
1031
|
-
`,
|
|
1032
|
-
`+o2;break;case"server":case"migration":throw Error("schema runtime mode '"+f+"' is not available in the browser. ORM and DDL features require side-effect-importing loader-server.js.");default:throw Error(`unknown schema runtime mode: ${f}`)}return(s2+_+t2).trimStart()}p2(u3);var _5=u3({mode:"browser"});if(typeof globalThis<"u"&&!globalThis.__ripSchema)try{(0,eval)(_5)}catch{}function _3(f){let _=f.prototype;_.rewriteTypes=function(){let c=this.tokens,n=this.typeRefNames=new Set,u=(l,i,w)=>{let D=[l,i];if(D.pre=0,D.data=null,D.loc=w?.loc??{r:0,c:0,n:0},D.spaced=!1,D.newLine=!1,D.generated=!0,w)D.origin=w;return D};this.scanTokens((l,i,w)=>{let D=l[0];if(D==="IDENTIFIER"){let h=w[i+1];if(h&&h[0]==="COMPARE"&&h[1]==="<"&&!h.spaced){let A=w[i-1]?.[0]==="DEF",R=l3(w,i+1);if(R){let U=i+1+R.length,$=!A&&w[U]?.[0]==="="&&w[U+1]?.[0]==="COMPONENT";if(A||$){if(!l.data)l.data={};if(l.data.typeParams=Y1(R),w.splice(i+1,R.length),A&&w[i+1]?.[0]==="("){w[i+1][0]="CALL_START";let z=1,M=i+2;while(M<w.length&&z>0){if(w[M][0]==="("||w[M][0]==="CALL_START")z++;if(w[M][0]===")"||w[M][0]==="CALL_END")z--;if(z===0)w[M][0]="CALL_END";M++}}}}}}if(D==="TYPE_ANNOTATION"){let h=w[i-1];if(!h)return 1;let A=f3(w,i+1),R=Y1(A),U=h,$="type";if(h[0]==="CALL_END"||h[0]===")"){let M=1,F=i-2;while(F>=0&&M>0){let H=w[F][0];if(H==="CALL_END"||H===")")M++;if(H==="CALL_START"||H==="(")M--;F--}if(F>=0)U=w[F];$="returnType"}else if(h[0]==="PARAM_END"){let M=i+1+A.consumed,F=w[M];if(F&&(F[0]==="->"||F[0]==="=>"))U=F;$="returnType"}else if(h[0]==="IDENTIFIER"&&i>=2&&w[i-2]?.[0]==="DEF")$="returnType";if(!U.data)U.data={};U.data[$]=R;for(let M of A)if(M[0]==="IDENTIFIER")n.add(M[1]);let z=1+A.consumed;return w.splice(i,z),0}if(D==="IDENTIFIER"&&l[1]==="type"){let h=w[i-1]?.[0];if(!(!h||h==="TERMINATOR"||h==="INDENT"||h==="EXPORT"))return 1;let R=i+1,U=w[R];if(!U||U[0]!=="IDENTIFIER")return 1;let $=U[1],z=h==="EXPORT",M=z?i-1:i,F=R+1;if(w[F]?.[0]==="COMPARE"&&w[F]?.[1]==="<"&&!w[F].spaced){let Y=l3(w,F);if(Y){if(!U.data)U.data={};U.data.typeParams=Y1(Y),w.splice(F,Y.length)}}if(w[F]?.[0]!=="=")return 1;let H=(Y)=>{let q=u("TYPE_DECL",$,U);if(q.data={name:$,typeText:Y,exported:z},U.data?.typeParams)q.data.typeParams=U.data.typeParams;return q},Q=F+1,O=w[Q],W=(Y,q)=>{for(let y=Y;y<=q&&y<w.length;y++)if(w[y][0]==="IDENTIFIER")n.add(w[y][1])};if(O&&(O[0]==="TERMINATOR"||O[0]==="INDENT")){let Y=c5(w,Q);if(Y)return W(Q,Y.endIdx),w.splice(M,Y.endIdx-M+1,H(Y.typeText)),0}if(O&&O[0]==="INDENT"){let Y=y2(w,Q);return W(Q,Y),w.splice(M,Y-M+1,H(Y2(w,Q))),0}let K=f3(w,Q);return W(Q,Q+K.consumed-1),w.splice(M,Q+K.consumed-M,H(Y1(K))),0}if(D==="INTERFACE"){let h=i>=1&&w[i-1]?.[0]==="EXPORT",A=i+1,R=w[A];if(!R)return 1;let U=R[1],$=null,z=A+1;if(w[z]?.[0]==="EXTENDS")$=w[z+1]?.[1],z=z+2;if(w[z]?.[0]==="INDENT"){let M=Y2(w,z),F=y2(w,z);for(let W=z;W<=F&&W<w.length;W++)if(w[W][0]==="IDENTIFIER")n.add(w[W][1]);if($)n.add($);let H=u("TYPE_DECL",U,R);H.data={name:U,kind:"interface",extends:$,typeText:M,exported:h};let Q=h?i-1:i,O=F-Q+1;return w.splice(Q,O,H),0}return 1}return 1});for(let l=c.length-1;l>=0;l--){if(c[l][0]!=="DEF")continue;let i=c[l+1];if(!i||i[0]!=="IDENTIFIER")continue;let w=l+2;if(c[w]?.[0]!=="CALL_START")continue;let D=1;w++;while(w<c.length&&D>0){if(c[w][0]==="CALL_START")D++;if(c[w][0]==="CALL_END")D--;w++}let h=w-1,A=c[w];if(A&&A[0]!=="TERMINATOR")continue;let R=i.data?.returnType;if(!R){for(let H=l+2;H<=h;H++)if(c[H].data?.type){R=!0;break}}if(!R)continue;let U=c.slice(l,w+1),$=l>=1&&c[l-1]?.[0]==="EXPORT",z=$?l-1:l,M=w+1-z,F=u("TYPE_DECL",i[1],i);if(F.data={name:i[1],kind:"overload",overloadTokens:U,exported:$},i.data?.typeParams)F.data.typeParams=i.data.typeParams;c.splice(z,M,F)}}}function f3(f,_){let c=[],n=0,u=_;while(_<f.length){let l=f[_],i=l[0],w=i==="("||i==="["||i==="{"||i==="CALL_START"||i==="PARAM_START"||i==="INDEX_START"||i==="COMPARE"&&l[1]==="<",D=i===")"||i==="]"||i==="}"||i==="CALL_END"||i==="PARAM_END"||i==="INDEX_END"||i==="COMPARE"&&l[1]===">";if(i==="SHIFT"&&l[1]===">>"&&n>=2){n-=2,c.push(l),_++;continue}if(w){n++,c.push(l),_++;continue}if(D){if(n>0){n--,c.push(l),_++;continue}break}if(n===0){if(i==="INDENT"&&c.length>0&&c[c.length-1][0]==="=>"){_++;let h=1;while(_<f.length&&h>0)if(f[_][0]==="INDENT")h++,_++;else if(f[_][0]==="OUTDENT")h--,_++;else c.push(f[_]),_++;continue}if(i==="="||i==="REACTIVE_ASSIGN"||i==="COMPUTED_ASSIGN"||i==="READONLY_ASSIGN"||i==="EFFECT"||i==="TERMINATOR"||i==="INDENT"||i==="OUTDENT"||i==="->"||i===",")break}c.push(l),_++}return c.consumed=_-u,c}function Y1(f){if(f.length===0)return"";if(f[0]?.[0]==="=>")f.unshift(["","()"]);let _=f.map((c)=>c[1]).join(" ").replace(/\s+/g," ").trim();return _=_.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": ").replace(/ : /g,": "),_}function l3(f,_){if(_>=f.length)return null;let c=f[_];if(c[0]!=="COMPARE"||c[1]!=="<")return null;let n=[c],u=1,l=_+1;while(l<f.length&&u>0){let i=f[l];if(n.push(i),i[0]==="COMPARE"&&i[1]==="<")u++;else if(i[0]==="COMPARE"&&i[1]===">")u--;l++}return u===0?n:null}function Y2(f,_){let c=[],n=_+1,u=1;while(n<f.length&&u>0){let l=f[n];if(l[0]==="INDENT"){u++,n++;continue}if(l[0]==="OUTDENT"){if(u--,u===0)break;n++;continue}if(l[0]==="TERMINATOR"){n++;continue}if(u===1&&l[0]==="["){let w=[];n++;while(n<f.length&&f[n][0]!=="]")w.push(f[n]),n++;if(n++,f[n]?.[1]===":"||f[n]?.[0]==="TYPE_ANNOTATION")n++;let D=[];while(n<f.length){let R=f[n];if(R[0]==="TERMINATOR"||R[0]==="OUTDENT")break;D.push(R),n++}let h=Y1(w),A=Y1(D);c.push(`[${h}]: ${A}`);continue}let i=l[0]==="PROPERTY"||l[0]==="IDENTIFIER"||u===1&&/^[a-zA-Z_$]/.test(l[1])&&f[n+1]?.[0]==="TYPE_ANNOTATION";if(u===1&&i){let w=l[1],D=!1,h=!1;if(n++,w==="readonly"&&f[n]&&(f[n][0]==="PROPERTY"||f[n][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(f[n][1])&&f[n+1]?.[0]==="TYPE_ANNOTATION")){if(h=!0,w=f[n][1],f[n].data?.predicate)D=!0;n++}if(l.data?.predicate)D=!0;if(f[n]?.[1]==="?"&&!f[n]?.spaced)D=!0,n++;if(f[n]?.[1]===":"||f[n]?.[0]==="TYPE_ANNOTATION")n++;let A=[],R=0;while(n<f.length){let F=f[n];if(F[0]==="IDENTIFIER"&&F[1]==="type"&&f[n+1]?.[0]==="INDENT"){n++;let H=Y2(f,n);A.push(["",H]);let Q=1;n++;while(n<f.length&&Q>0){if(f[n][0]==="INDENT")Q++;if(f[n][0]==="OUTDENT")Q--;n++}continue}if(F[0]==="INDENT"){R++,n++;continue}if(F[0]==="OUTDENT"){if(R>0){R--,n++;continue}break}if(F[0]==="TERMINATOR"&&R===0)break;A.push(F),n++}let U=Y1(A),$=h?"readonly ":"",z=D?"?":"",M=!1;if(!D&&U.startsWith("(")){let F=0;for(let H=0;H<U.length;H++){let Q=U[H];if(Q==="(")F++;else if(Q===")"){if(F--,F===0){let O=U.slice(H+1).trimStart();if(O===""||O.startsWith(":")&&!O.startsWith("::"))M=!0;break}}}}if(M)c.push(`${$}${w}${U}`);else c.push(`${$}${w}${z}: ${U}`)}else n++}return"{ "+c.join("; ")+" }"}function y2(f,_){let c=0;for(let n=_;n<f.length;n++){if(f[n][0]==="INDENT")c++;if(f[n][0]==="OUTDENT"){if(c--,c===0)return n}}return f.length-1}function c5(f,_){let c=_;if(f[c]?.[0]==="TERMINATOR")c++;if(f[c]?.[0]!=="INDENT")return null;let n=c;c++;while(c<f.length&&f[c][0]==="TERMINATOR")c++;if(!f[c]||f[c][1]!=="|")return null;let u=[],l=1;c=n+1;while(c<f.length&&l>0){let w=f[c];if(w[0]==="INDENT"){l++,c++;continue}if(w[0]==="OUTDENT"){if(l--,l===0)break;c++;continue}if(w[0]==="TERMINATOR"){c++;continue}if(w[1]==="|"&&l===1){c++;let D=[];while(c<f.length){let h=f[c];if(h[0]==="TERMINATOR"||h[0]==="OUTDENT"||h[1]==="|"&&l===1)break;D.push(h),c++}if(D.length>0)u.push(Y1(D));continue}c++}if(u.length===0)return null;let i=y2(f,n);return{typeText:u.join(" | "),endIdx:i}}var c3=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),n3=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),q2={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},i3=new Set(Object.keys(q2)),n5=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),i5=new Set(["break","continue","debugger"]),h5=new Set(["NEW","TYPEOF","DELETE"]),w5=new Set(["IN","OF","INSTANCEOF"]),h2=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),w2=new Set([...h2,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","MAP_END","SYMBOL"]),n2=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","MAP_START","--","++","SYMBOL"]),D5=new Set(["+","-"]),A5=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),U5=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}","MAP_END","SYMBOL"]),y1=new Set(["(","[","{","MAP_START","PICK_START","OPTPICK_START","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),H1=new Set([")","]","}","MAP_END","PICK_END","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),R5={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START",MAP_START:"MAP_END",MAP_END:"MAP_START",PICK_START:"PICK_END",PICK_END:"PICK_START",OPTPICK_START:"PICK_END"},h3=new Set(["CATCH","THEN","ELSE","FINALLY",...H1]),Z2=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),$5=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),F5=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT","FOR"]),M5=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","REGEX_END",")","CALL_END","]","INDEX_END","}","MAP_END","PICK_END","BOOL","NULL","UNDEFINED","INFINITY","NAN","SUPER","THIS","@","SYMBOL"]),w3=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),z5=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),B1=new Set(["INDENT","OUTDENT","TERMINATOR"]),J1=(f)=>f?.[0]==="IDENTIFIER"||f?.[0]==="PROPERTY",i2=(f,_)=>{if(f?.[0]===".")return!0;if(f?.[0]==="-")return f.spaced===!1&&!f.newLine&&_?.spaced===!1&&!_?.newLine;return!1},D3=new Set([".","?."]),A3=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),O5=new Set([...w2,"++","--"]),U3=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),W5=new Set(["*","/","%","//","%%"]),H5=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),K5=new Set(["<<",">>",">>>"]),Q5=new Set(["!","~"]),Y5=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,y5=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,Z5=/^(?:<=>|::|\*>|[-=]>|~>|~=|:=|=!|===|!==|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,q5=/^[^\n\S]+/,J5=/^(?:\n[^\n\S]*)+/,G5=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,X5=/^[-=]>/,P5=/^(?:~[=>]|=!)/,S5=/^(?:'''\\|"""\\|'''|"""|'|")/,b5=/^(?:[^\\']|\\[\s\S])*/,E5=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,N5=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,I5=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,R3=/\n+([^\n\S]*)(?=\S)/g,B5=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,$3=/^\w*/,T5=/^(?!.*(.).*\1)[gimsuy]*$/,a5=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,L5=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,C5=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,r5=/\s+$/,F3=/^\s*(?:,|\??\.(?![.\d]))/,j5=65279;function D2(f,_,{pre:c=0,row:n=0,col:u=0,len:l=0,data:i=null}={}){let w=[f,_];return w.pre=c,w.data=i,w.loc={r:n,c:u,n:l},w.spaced=c>0,w.newLine=!1,w}function z1(f,_,c){let n=D2(f,_);if(n.generated=!0,c)n.origin=c;return n}function O1(f,{row:_=0,col:c=0,len:n=1}={}){let u=SyntaxError(f);throw u.location={first_line:_,first_column:c,last_column:c+n-1},u}function m5(f){if(f==null)return NaN;switch(f.charAt(1)){case"b":return parseInt(f.slice(2).replace(/_/g,""),2);case"o":return parseInt(f.slice(2).replace(/_/g,""),8);case"x":return parseInt(f.slice(2).replace(/_/g,""),16);default:return parseFloat(f.replace(/_/g,""))}}class K1{tokenize(f,_={}){this.code=f,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=_.row||0,this.col=_.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,this.inTypeAnnotation=!1,f=this.clean(f),this.code=f;while(this.pos<f.length){this.chunk=f.slice(this.pos);let c=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(c===0)O1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(c),_.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let c=this.ends[this.ends.length-1];O1(`missing ${c.tag}`,{row:this.row,col:this.col})}if(_.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(f){if(f.charCodeAt(0)===j5)f=f.slice(1);if(f=f.replace(/\r\n?/g,`
|
|
1033
|
-
`),
|
|
1034
|
-
`+
|
|
1035
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=
|
|
1036
|
-
`)return 0;let
|
|
1037
|
-
`);if(this.isUnfinished()){if(
|
|
1038
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&
|
|
1039
|
-
`)
|
|
1040
|
-
`)}if(l===0&&_?.length===3)D=D.replace(/^\n/,"");if(l===f.length-1&&_?.length===3)D=D.replace(/\n[^\S\n]*$/,"");if(u)D=D.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${D}"`,{len:w.length,data:{quote:_}})}}if(f.length>1)this.emit("STRING_END",")",{len:_?.length||0});return n}numberToken(){let f=y5.exec(this.chunk);if(!f)return 0;let _=f[0],c=_.length,n={row:this.row,col:this.col};if(/^0[BOX]/.test(_))O1(`radix prefix in '${_}' must be lowercase`,{...n,col:n.col+1});if(/^0\d*[89]/.test(_))O1(`decimal literal '${_}' must not be prefixed with '0'`,{...n,len:c});if(/^0\d+/.test(_))O1(`octal literal '${_}' must be prefixed with '0o'`,{...n,len:c});let u=m5(_),l=u===1/0?"INFINITY":"NUMBER",i={parsedValue:u};if(l==="INFINITY")i.original=_;return this.emit(l,_,{len:c,data:i}),c}regexToken(){let f=this.matchWithInterpolations(a5,"///");if(f){let{tokens:h,index:A}=f,[R]=$3.exec(this.chunk.slice(A)),U=A+R.length;if(h.length===1||!h.some(($)=>$[0]==="TOKENS")){let $=(h[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${$}/${R}`,{len:U,data:{delimiter:"///",heregex:{flags:R}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(h,{quote:"///",endOffset:U-R.length}),R)this.emit(",",",",{len:0}),this.emit("STRING",`"${R}"`,{len:R.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return U}let _=B5.exec(this.chunk);if(!_)return 0;let[c,n,u]=_,l=this.prev();if(l){if(l.spaced&&h2.has(l[0])&&(!u||/^\/=?\s/.test(c)))return 0;if(O5.has(l[0])&&!(l.spaced&&h2.has(l[0])))return 0}if(!u)O1("missing / (unclosed regex)",{row:this.row,col:this.col});let i=c.length,[w]=$3.exec(this.chunk.slice(i)),D=i+w.length;if(!T5.test(w))O1(`invalid regular expression flags ${w}`,{row:this.row,col:this.col+i,len:w.length});return this.emit("REGEX",`/${n}/${w}`,{len:D,data:{delimiter:"/"}}),D}jsToken(){if(this.chunk[0]!=="`")return 0;let f=C5.exec(this.chunk)||L5.exec(this.chunk);if(!f)return 0;let _=f[1],c=f[0].length;return this.emit("JS",_,{len:c,data:{here:f[0].startsWith("```")}}),c}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let c={"[":"]","(":")","{":"}","<":">"}[f]||f,n=c!==f,u=1,l=3;while(l<this.chunk.length&&u>0){let h=this.chunk[l];if(h==="\\"){l+=2;continue}if(n&&h===f)u++;if(h===c)u--;if(u>0)l++}if(u!==0)return 0;let i=this.chunk.slice(3,l),w=l+1,D=[];if(i.trim()){let h=i.trim().split(/(?<!\\)\s+/);for(let A of h)D.push(A.replace(/\\ /g," "))}this.emit("[","[",{len:w});for(let h=0;h<D.length;h++){if(h>0)this.emit(",",",");this.emit("STRING",`"${D[h]}"`)}return this.emit("]","]"),w}symbolToken(){if(this.chunk[0]!==":")return 0;let f=this.chunk[1];if(!f||f==="="||f===":"||/\s/.test(f))return 0;if(!/[a-zA-Z_$]/.test(f))return 0;let _=/^((?:(?!\s)[$\w\x7f-\uffff])+)/.exec(this.chunk.slice(1));if(!_)return 0;let c=_[1],n=c.length+1;return this.emit("SYMBOL",c,{len:n}),n}literalToken(){let f=this.wordLiteral();if(f)return f;let _=this.symbolToken();if(_)return _;let c=Z5.exec(this.chunk),n=c?c[0]:this.chunk.charAt(0),u=n,l=this.prev();if(X5.test(n))this.tagParameters();if(n==="="&&l&&l[1]==="."&&!l.spaced){let i=this.tokens,w=i.length-2;while(w>=1&&i[w][0]==="PROPERTY"&&i[w-1]?.[1]===".")w-=2;if(w>=0&&(i[w][0]==="IDENTIFIER"||i[w][0]===")"||i[w][0]==="]")){let D=i.slice(w,i.length-1);l[0]="=",l[1]="=";for(let h of D)this.tokens.push(D2(h[0],h[1],{pre:0,row:h[2],col:h[3],len:h[4]}));return this.tokens.push(D2(".",".",{pre:0,row:this.row,col:this.col,len:1})),n.length}}if(l&&(n==="="||U3.has(n))){if(n==="="&&(l[1]==="||"||l[1]==="&&"||l[1]==="??")&&!l.spaced)return l[0]="COMPOUND_ASSIGN",l[1]+="=",n.length}if(n==="("&&l?.[0]==="IMPORT")l[0]="DYNAMIC_IMPORT";if(n==="{"&&this.seenImport)this.importSpecifierList=!0;if(n==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(n==="{"&&l?.[0]==="EXPORT")this.exportSpecifierList=!0;if(n==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(n===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,u="TERMINATOR";else if(n==="|>")u="PIPE";else if(n==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(n==="::")u="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(n==="~=")u="COMPUTED_ASSIGN";else if(n===":=")u="REACTIVE_ASSIGN";else if(n==="<=>")u="BIND";else if(n==="~>")u="EFFECT",this.inTypeAnnotation=!1;else if(n==="=!")u="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(n==="*>"&&(!l||l[0]==="TERMINATOR"||l[0]==="INDENT"||l[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let i=this.chunk.slice(2),w=/^@(\s*)=(?!=)/.exec(i);if(w){let h=w[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let A=this.emit("PROPERTY","assign");return A.spaced=!0,this.emit("@","@"),this.emit(",",","),3+h.length+1}let D=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(i);if(D){let h=D[1],A=D[2],R=h[0]==="@",U=R?h.slice(1):h,$=U?U.split("."):[],z=()=>{if(R){if(this.emit("@","@"),$.length>0)this.emit("PROPERTY",$[0])}else this.emit("IDENTIFIER",$[0]);for(let F=1;F<$.length;F++)this.emit(".","."),this.emit("PROPERTY",$[F])};z(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),z(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let M=this.prev();return M.mergeClose=!0,2+h.length+A.length+1}}else if(n==="*"&&l?.[0]==="EXPORT")u="EXPORT_ALL";else if(W5.has(n))u="MATH";else if(H5.has(n))u="COMPARE";else if(U3.has(n))u="COMPOUND_ASSIGN";else if(Q5.has(n))u="UNARY_MATH";else if(K5.has(n))u="SHIFT";else if(n==="?"&&l?.spaced)u="TERNARY";else if(n==="?!"&&l&&!l.spaced)u="PRESENCE";else if(n==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))u="?.";else if(l){if(n==="("&&!l.spaced&&h2.has(l[0])){if(l[0]==="?.")l[0]="ES6_OPTIONAL_CALL";u="CALL_START"}if(n==="["&&!l.spaced&&w2.has(l[0])){if(u="INDEX_START",l[0]==="?.")l[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(n==="="||u==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(n==="="){let i=this.tokens.length;if(i>=2&&this.tokens[i-1][0]==="IDENTIFIER"&&this.tokens[i-2][0]==="IDENTIFIER"&&this.tokens[i-2][1]==="type"&&(i===2||this.tokens[i-3][0]==="TERMINATOR"||this.tokens[i-3][0]==="INDENT"||this.tokens[i-3][0]==="OUTDENT"||this.tokens[i-3][0]==="EXPORT"))this.inTypeAnnotation=!0}if(n==="("||n==="{"||n==="[")this.ends.push({tag:R5[n],origin:[u,n]});else if(n===")"||n==="}"||n==="]")this.pair(n);return this.emit(u,n,{len:n.length}),n.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let f=this.tokens.length-1,_=[];this.tokens[f][0]="PARAM_END";while(f-- >0){let c=this.tokens[f];if(c[0]===")")_.push(c);else if(c[0]==="("||c[0]==="CALL_START")if(_.length)_.pop();else if(c[0]==="(")return c[0]="PARAM_START",this.tagDoIife(f-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(f){let _=this.tokens[f??this.tokens.length-1];if(_?.[0]==="DO")_[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.rewriteDottedPicks(),this.rewriteMapLiterals(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteSchema?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}rewriteMapLiterals(){let f=this.tokens;for(let _=0;_<f.length;_++){if(f[_][0]!=="MATH"||f[_][1]!=="*")continue;let c=f[_+1];if(!c||c[0]!=="{")continue;if(f[_].spaced||f[_].newLine)continue;let n=f[_-1];if(n&&w2.has(n[0]))continue;f.splice(_,1),f[_][0]="MAP_START";let u=1;for(let l=_+1;l<f.length&&u>0;l++){let i=f[l][0];if(i==="{"||i==="MAP_START")u++;if(i==="}"){if(u--,u===0)f[l][0]="MAP_END"}}}}rewriteDottedPicks(){let f=this.tokens;for(let _=0;_<f.length;_++){let c=f[_][0];if(c!=="."&&c!=="?.")continue;let n=f[_+1];if(!n||n[0]!=="{")continue;if(f[_].spaced||f[_].newLine)continue;let u=f[_-1];if(!u||!w2.has(u[0]))continue;let l=c==="?.";f.splice(_,1),f[_][0]=l?"OPTPICK_START":"PICK_START";let i=1;for(let w=_+1;w<f.length&&i>0;w++){let D=f[w][0];if(D==="{"||D==="PICK_START"||D==="OPTPICK_START")i++;else if(D==="}"){if(i--,i===0){f[w][0]="PICK_END";break}}}}}closeOpenCalls(){this.scanTokens((f,_)=>{if(f[0]==="CALL_START")this.detectEnd(_+1,(c)=>c[0]===")"||c[0]==="CALL_END",(c)=>c[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,_)=>{if(f[0]==="INDEX_START")this.detectEnd(_+1,(c)=>c[0]==="]"||c[0]==="INDEX_END",(c,n)=>{if(this.tokens[n+1]?.[0]===":")f[0]="[",c[0]="]";else c[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,_=null,c=null,n=(l,i)=>{return l[1]!==";"&&z5.has(l[0])&&!(l[0]==="TERMINATOR"&&h3.has(this.tokens[i+1]?.[0]))&&!(l[0]==="ELSE"&&f!=="THEN")||l[0]==="INDENT"&&!l.generated&&(f==="->"||f==="=>")||l[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(i)&&!this.commaInImplicitObject(i)||D3.has(l[0])&&(this.tokens[i-1]?.newLine||this.tokens[i-1]?.[0]==="OUTDENT")},u=(l,i)=>{let w=this.tokens[i-1]?.[0]===","?i-1:i;this.tokens.splice(w,0,c)};this.scanTokens((l,i,w)=>{let[D]=l;if(D==="TERMINATOR"){if(this.tokens[i+1]?.[0]==="ELSE"&&this.tokens[i-1]?.[0]!=="OUTDENT")return w.splice(i,1,...this.makeIndentation()),1;if(h3.has(this.tokens[i+1]?.[0]))return w.splice(i,1),0}if(D==="CATCH")for(let h=1;h<=2;h++){let A=this.tokens[i+h]?.[0];if(A==="OUTDENT"||A==="TERMINATOR"||A==="FINALLY")return w.splice(i+h,0,...this.makeIndentation()),2+h}if((D==="->"||D==="=>")&&(this.tokens[i+1]?.[0]===","||this.tokens[i+1]?.[0]==="]"))return[_,c]=this.makeIndentation(),w.splice(i+1,0,_,c),1;if(w3.has(D)&&this.tokens[i+1]?.[0]!=="INDENT"&&!(D==="ELSE"&&this.tokens[i+1]?.[0]==="IF")&&!(D==="ELSE"&&this.tokens[i-1]?.[0]!=="OUTDENT")){if(f=D,[_,c]=this.makeIndentation(),D==="THEN")_.fromThen=!0;if(w.splice(i+1,0,_),D==="THEN"&&this.singleLineOwner(i)==="LEADING_WHEN")this.detectWhenThenEnd(i+2,n,u);else this.detectEnd(i+2,n,u);if(D==="THEN")w.splice(i,1);return 1}return 1})}singleLineOwner(f){let _=new Set(["LEADING_WHEN","IF","POST_IF","UNLESS","POST_UNLESS","ELSE","CATCH","TRY","FINALLY","->","=>"]);for(let c=f-1;c>=0;c--){let n=this.tokens[c],u=n?.[0];if(_.has(u))return u;if(B1.has(u)||n?.newLine)return null}return null}detectWhenThenEnd(f,_,c){let n=0,u=0;while(f<this.tokens.length){let l=this.tokens[f],i=l[0];if(n===0){if(i==="THEN"&&this.singleLineOwner(f)!=="LEADING_WHEN")u++;else if(i==="ELSE"&&u>0)u--;else if(_.call(this,l,f))return c.call(this,l,f)}if(y1.has(i))n++;if(H1.has(i))n--;if(n<0)return c.call(this,l,f);f++}}tagPostfixConditionals(){let f=null,_=(n,u)=>{return n[0]==="TERMINATOR"||n[0]==="INDENT"&&!w3.has(this.tokens[u-1]?.[0])},c=(n)=>{if(n[0]!=="INDENT"||n.generated&&!n.fromThen)f[0]="POST_"+f[0]};this.scanTokens((n,u)=>{if(n[0]!=="IF"&&n[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=n,this.detectEnd(u+1,_,c),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let _=f.length-2;_>=0;_--)if(f[_][0]==="IDENTIFIER"&&f[_][1]==="$"&&(f[_+1]?.[0]==="STRING"||f[_+1]?.[0]==="STRING_START")){let c=f[_-1];if(c&&$5.has(c[0])){if(f.splice(_,1),c.spaced=!1,f[_].spaced=!1,f[_].pre=0,f[_].newLine)f[_].newLine=!1}}}addImplicitBracesAndParens(){let f=[],_=!1;this.scanTokens((c,n,u)=>{let[l]=c,i=u[n-1]||[],w=u[n+1]||[],[D]=i,[h]=w,A=n,R=(Z)=>n-A+Z,U=()=>f[f.length-1],$=(Z)=>Z?.[2]?.ours,z=()=>$(U())&&U()?.[0]==="(",M=()=>$(U())&&U()?.[0]==="{",F=(Z)=>{f.push(["(",Z,{ours:!0}]),u.splice(Z,0,z1("CALL_START","("))},H=()=>{f.pop(),u.splice(n,0,z1("CALL_END",")")),n+=1},Q=(Z,J={})=>{f.push(["{",Z,{sameLine:!0,startsLine:J.startsLine??!0,ours:!0}]);let X=z1("{","{");if(!X.data)X.data={};X.data.generated=!0,u.splice(Z,0,X)},O=(Z)=>{Z=Z??n,f.pop(),u.splice(Z,0,z1("}","}")),n+=1},W=l==="FOR"&&!c.newLine&&M5.has(D);if((z()||M())&&F5.has(l)&&!W)return f.push(["CONTROL",n,{ours:!0}]),R(1);if(l==="INDENT"&&$(U())){if(D!=="=>"&&D!=="->"&&D!=="["&&D!=="("&&D!==","&&D!=="{"&&D!=="ELSE"&&D!=="=")while(z()||M()&&D!==":")if(z())H();else O();if(U()?.[2]?.ours&&U()[0]==="CONTROL")f.pop();return f.push([l,n]),R(1)}if(y1.has(l))return f.push([l,n]),R(1);if(H1.has(l)){while($(U()))if(z())H();else if(M())O();else f.pop();f.pop()}let K=!1;if(h==="-"&&!w.spaced&&!w.newLine&&J1(c))for(let Z=n;Z<u.length-2;Z+=2){if(!i2(u[Z+1],u[Z+2]))break;if(!J1(u[Z+2]))break;if(u[Z+3]?.[0]===":"){K=!0;break}}if(!K&&Z2.has(l)&&c.spaced&&(n2.has(h)||h==="..."&&n2.has(u[n+2]?.[0])||D5.has(h)&&!w.spaced&&!w.newLine)&&!((l==="]"||l==="}")&&(h==="->"||h==="=>")))return F(n+1),R(2);if(Z2.has(l)&&this.tokens[n+1]?.[0]==="INDENT"&&this.looksObjectish(n+2)&&!this.findTagsBackwards(n,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return F(n+1),f.push(["INDENT",n+2]),R(3);if(l==="TERNARY")_=!0;if(l===":"){if(_)return _=!1,R(1);if(J1(u[n-1])&&i2(u[n-2],u[n-1])){let X=n-2;while(X>=2&&i2(u[X],u[X+1])&&J1(u[X-1]))X-=2;if(X+=1,J1(u[X])){let N="";for(let I=X;I<n;I++)N+=u[I][1];let S=z1("STRING",`"${N}"`,u[X]);S.pre=u[X].pre,S.spaced=u[X].spaced,S.newLine=u[X].newLine,S.loc=u[X].loc,u.splice(X,n-X,S),n=X+1}}let Z=H1.has(this.tokens[n-1]?.[0])?f[f.length-1]?.[1]??n-1:n-1;if(this.tokens[n-2]?.[0]==="@")Z=n-2;let J=Z<=0||B1.has(this.tokens[Z-1]?.[0])||this.tokens[Z-1]?.newLine;if(U()){let[X,N]=U(),S=f[f.length-2],I=(o)=>o==="{"||o==="MAP_START"||o==="PICK_START"||o==="OPTPICK_START";if((I(X)||X==="INDENT"&&I(S?.[0])&&!$(S))&&(J||this.tokens[Z-1]?.[0]===","||I(this.tokens[Z-1]?.[0])||I(this.tokens[Z]?.[0])))return R(1)}return Q(Z,{startsLine:!!J}),R(2)}if(B1.has(l))for(let Z=f.length-1;Z>=0;Z--){if(!$(f[Z]))break;if(f[Z][0]==="{")f[Z][2].sameLine=!1}let Y=D==="OUTDENT"||i.newLine,q=l==="||"||l==="&&",y=!1;if(q){let Z=n+1,J=u[Z]?.[0];if(J==="("||J==="["||J==="{"){for(let X=1;++Z<u.length&&X>0;)if(J=u[Z][0],J==="("||J==="["||J==="{")X++;else if(J===")"||J==="]"||J==="}")X--}else if(J&&J!=="TERMINATOR"&&J!=="OUTDENT"&&J!==",")Z++;y=u[Z]?.[0]===","}if(A5.has(l)&&!y||D3.has(l)&&Y)while($(U())){let[Z,,{sameLine:J,startsLine:X}]=U();if(z()&&D!==",")H();else if(M()&&!q&&J&&l!=="TERMINATOR"&&D!==":")O();else if(M()&&l==="TERMINATOR"&&D!==","&&!(X&&this.looksObjectish(n+1)))O();else if(U()?.[2]?.ours&&U()[0]==="CONTROL"&&u[U()[1]]?.[0]==="CLASS"&&l==="TERMINATOR")f.pop();else break}if(l===","&&!this.looksObjectish(n+1)&&M()&&(h!=="TERMINATOR"||!this.looksObjectish(n+2))){let Z=h==="OUTDENT"?1:0;while(M())O(n+Z)}return R(1)})}addImplicitCallCommas(){let f=0,_=0,c=this.tokens;while(_<c.length){let n=c[_][0],u=_>0?c[_-1][0]:null;if(n==="CALL_START"||n==="(")f++;if(n==="CALL_END"||n===")")f--;if(f>0&&(n==="->"||n==="=>")&&U5.has(u))c.splice(_,0,z1(",",",")),_++;_++}}scanTokens(f){let _=0;while(_<this.tokens.length)_+=f.call(this,this.tokens[_],_,this.tokens)}detectEnd(f,_,c,n={}){let u=0;while(f<this.tokens.length){let l=this.tokens[f];if(u===0&&_.call(this,l,f))return c.call(this,l,f);if(y1.has(l[0]))u++;if(H1.has(l[0]))u--;if(u<0){if(n.returnOnNegativeLevel)return;return c.call(this,l,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let _=0;_<f.length;_++){if(!f[_].mergeClose)continue;let c=0;for(let n=_+1;n<f.length;n++){let u=f[n][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")c++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")c--;if(c<0||c===0&&u==="TERMINATOR"){f.splice(n,0,z1("CALL_END",")",f[n-1]));break}if(n===f.length-1){f.splice(n+1,0,z1("CALL_END",")",f[n]));break}}}}commaInImplicitCall(f){let _=0;for(let c=f-1;c>=0;c--){let n=this.tokens[c][0];if(H1.has(n)){_++;continue}if(y1.has(n)){if(n==="INDENT")return!1;if(_--,_<0)return!1;continue}if(_>0)continue;if(Z2.has(n)&&this.tokens[c].spaced){let u=this.tokens[c+1]?.[0];return n2.has(u)||u==="..."&&n2.has(this.tokens[c+2]?.[0])}}return!1}commaInImplicitObject(f){let _=0;for(let c=f-1;c>=0;c--){let n=this.tokens[c][0];if(H1.has(n)){_++;continue}if(y1.has(n)){if(_--,_<0)return!1;continue}if(_>0)continue;if(n===":"&&c>0&&this.tokens[c-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(B1.has(n))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if(J1(this.tokens[f]))for(let _=f+1;_<this.tokens.length;_+=2){if(!i2(this.tokens[_],this.tokens[_+1]))break;if(!J1(this.tokens[_+1]))break;if(this.tokens[_+2]?.[0]===":")return!0}if(y1.has(this.tokens[f]?.[0])){let _=null;if(this.detectEnd(f+1,(c)=>H1.has(c[0]),(c,n)=>_=n),_&&this.tokens[_+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,_){let c=new Set(_),n=[];while(f>=0){let u=this.tokens[f]?.[0];if(!n.length&&c.has(u))return!0;if(H1.has(u))n.push(u);if(y1.has(u)&&n.length)n.pop();if(!n.length&&(y1.has(u)&&!this.tokens[f]?.generated||B1.has(u)))break;f--}return!1}makeIndentation(f){let _=z1("INDENT",2),c=z1("OUTDENT",2);if(f)_.generated=c.generated=!0,_.origin=c.origin=f;else _.explicit=c.explicit=!0;return[_,c]}}_3(K1);c2(K1);var V5=["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"],M3=new Set(V5);var g5=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var v5=["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view"],s5=["math","param","portal"],z3=new Set([...g5,...s5]),G1=new Set(v5),X1=new Set([...z3,...G1]);var O3="__bind_",W3="__",J2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),t5=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]),G2="http://www.w3.org/2000/svg";function o5(f){for(let _ of f){if(!Array.isArray(_))continue;let c=_[1]instanceof String?_[1].valueOf():_[1],n=_[2]instanceof String?_[2].valueOf():_[2];if(c==="type"&&typeof n==="string")return n.replace(/^["']|["']$/g,"")}return null}function P1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function X2(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function P2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function H3(f,_){let c=(h,A)=>h instanceof String?h[A]:void 0,n=_.prototype.classifyKeyword;_.prototype.classifyKeyword=function(h,A,R){if(h==="offer"||h==="accept"){let U=0;for(let $=this.tokens.length-1;$>=0;$--){let z=this.tokens[$][0];if(z==="OUTDENT")U++;else if(z==="INDENT")U--;if(U<0&&this.tokens[$-1]?.[0]==="COMPONENT")return h.toUpperCase()}return A}return n.call(this,h,A,R)},_.prototype.rewriteRender=function(){let h=(O,W,K)=>{let Y=[O,W];if(Y.pre=0,Y.data=null,Y.loc=K?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,K)Y.origin=K;return Y},A=!1,R=0,U=0,$=[],z=(O)=>{let W=O.split("#")[0];return X1.has(W)},M=(O)=>{if(!O||typeof O!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(O)},F=(O)=>{return z(O)||M(O)},H=(O,W,K,Y)=>{let q=1,y=W;while(y>=0&&q>0){let Z=O[y][0];if(Z===K)q++;else if(Z===Y)q--;if(q>0)y--}return y},Q=(O,W)=>{let K=W;while(K>0){let Y=O[K-1][0];if(Y==="TERMINATOR"||Y==="RENDER")break;if(Y==="INDENT"||Y==="OUTDENT"){let q=O[K][0];if(q==="CALL_END"||q===")"){K=H(O,K-1,q,q==="CALL_END"?"CALL_START":"(");continue}break}if(Y==="CALL_END"||Y===")"){K=H(O,K-2,Y,Y==="CALL_END"?"CALL_START":"(");continue}if(Y==="INTERPOLATION_END"){K=H(O,K-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(Y==="STRING_END"){K=H(O,K-2,"STRING_END","STRING_START");continue}K--}return O[K]&&O[K][0]==="IDENTIFIER"&&(F(O[K][1])||(K===0||O[K-1][0]==="INDENT"||O[K-1][0]==="TERMINATOR"||O[K-1][0]==="RENDER"))};this.scanTokens(function(O,W,K){let Y=O[0],q=W<K.length-1?K[W+1]:null;if(Y==="RENDER")return A=!0,R=U+1,1;if(Y==="INDENT")return U++,1;if(Y==="OUTDENT"){U--;let y=0;while($.length>0&&$[$.length-1]>U){let Z=h("CALL_END",")",O);K.splice(W+1+y,0,Z),$.pop(),y++}if(A&&U<R)A=!1;return 1+y}if(!A)return 1;if(Y==="="&&W>0){let y=K[W-1][0];if(y==="TERMINATOR"||y==="INDENT"||y==="RENDER"){let Z=h("IDENTIFIER","__text__",O),J=h("CALL_START","(",O);return K.splice(W,1,Z,J),this.detectEnd(W+2,(X)=>X[0]==="TERMINATOR"||X[0]==="OUTDENT",(X,N)=>K.splice(N,0,h("CALL_END",")",X)),{returnOnNegativeLevel:!0}),2}}if(Y==="UNARY_MATH"&&O[1]==="~"&&q&&q[0]==="IDENTIFIER"){O[0]="PROPERTY",O[1]="__transition__";let y=h(":",":",O),Z=h("STRING",`"${q[1]}"`,q);return K.splice(W+1,1,y,Z),1}if(Y==="PROPERTY"&&O[1][0]==="$"&&O[1].length>1)return O[0]="STRING",O[1]=`"data-${O[1].slice(1)}"`,1;if(Y==="IDENTIFIER"&&!O.spaced){let y=[O[1]],Z=W+1;while(Z+1<K.length){let J=K[Z],X=K[Z+1];if(J[0]==="-"&&!J.spaced&&(X[0]==="IDENTIFIER"||X[0]==="PROPERTY")){if(y.push(X[1]),Z+=2,X[0]==="PROPERTY")break}else break}if(y.length>1&&Z>W+1&&K[Z-1][0]==="PROPERTY"){let J=y.join("-");if(J[0]==="$")J="data-"+J.slice(1);return O[0]="STRING",O[1]=`"${J}"`,K.splice(W+1,Z-W-1),1}}if(Y==="."){let y=W>0?K[W-1]:null,Z=y?y[0]:null;if(Z==="INDENT"||Z==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let J=W+2<K.length?K[W+2]:null;if(!J||J[0]!==":"){let X=h("IDENTIFIER","div",O);return K.splice(W,0,X),2}}if(!q||q[0]!=="(")return O[0]="IDENTIFIER",O[1]="div",0}}if(Y==="IDENTIFIER"||Y==="PROPERTY"){let y=K[W+1],Z=K[W+2];if(y&&y[0]==="#"&&Z&&(Z[0]==="PROPERTY"||Z[0]==="IDENTIFIER")){if(O[1]=O[1]+"#"+Z[1],Z.spaced)O.spaced=!0;return K.splice(W+1,2),0}}if(Y==="BIND"){let y=W>0?K[W-1]:null,Z=K[W+1];if(y&&(y[0]==="IDENTIFIER"||y[0]==="PROPERTY")&&Z&&Z[0]==="IDENTIFIER")return y[1]=`__bind_${y[1]}__`,O[0]=":",O[1]=":",1}if(Y==="@"){let y=W+1;if(y<K.length&&K[y][0]==="PROPERTY"){y++;while(y+1<K.length&&K[y][0]==="."&&K[y+1][0]==="PROPERTY")y+=2;if(y>W+2&&y<K.length&&K[y][0]===":"){let Z=h("[","[",O);K.splice(W,0,Z);let J=h("]","]",K[y+1]);return K.splice(y+1,0,J),2}}}if(Y==="."&&q&&q[0]==="("){let y=W>0?K[W-1]:null,Z=y?y[0]:null,J=Z==="INDENT"||Z==="TERMINATOR",X=h("PROPERTY","__clsx",O);q[0]="CALL_START";let N=1;for(let S=W+2;S<K.length&&N>0;S++)if(K[S][0]==="("||K[S][0]==="CALL_START")N++;else if(K[S][0]===")"){if(N--,N===0)K[S][0]="CALL_END"}else if(K[S][0]==="CALL_END")N--;if(J){let S=h("IDENTIFIER","div",O);return K.splice(W,0,S),K.splice(W+2,0,X),3}else if(Z===":")return K[W]=h("IDENTIFIER","__clsx",O),1;else return K.splice(W+1,0,X),2}if(q&&q[0]==="INDENT"){if(q.fromThen)return 1;if(Y==="->"||Y==="=>"||Y==="CALL_START"||Y==="(")return 1;let y=!1,Z=W>0?K[W-1][0]:null,J=Z==="IF"||Z==="UNLESS"||Z==="WHILE"||Z==="UNTIL"||Z==="WHEN"||Z==="FORIN"||Z==="FOROF"||Z==="FORAS"||Z==="FORASAWAIT"||Z==="BY",X=!1;if(Y==="CALL_END"){let S=1;for(let I=W-1;I>=0&&S>0;I--)if(K[I][0]==="CALL_END")S++;else if(K[I][0]==="CALL_START"){if(S--,S===0&&I>0&&K[I-1][0]==="PROPERTY"&&K[I-1][1]==="__clsx")X=!0}}let N=Y==="IDENTIFIER"&&(Z==="INDENT"||Z==="TERMINATOR"||Z==="RENDER");if(X)y=!0;else if(Y==="IDENTIFIER"&&F(O[1])&&!J)y=!0;else if(Y==="IDENTIFIER"&&!J)y=N||Q(K,W);else if(Y==="PROPERTY"||Y==="STRING"||Y==="STRING_END"||Y==="NUMBER"||Y==="BOOL"||Y==="CALL_END"||Y===")"||Y==="PRESENCE")y=Q(K,W);if(y){let S=!1;if(Y==="PROPERTY"&&W>0&&K[W-1][0]==="."){let o=W;while(o>=2&&K[o-1][0]==="."&&K[o-2][0]==="PROPERTY")o-=2;if(o>=2&&K[o-1][0]==="."&&K[o-2][0]==="IDENTIFIER"&&F(K[o-2][1])){let T=o>=3?K[o-3][0]:null;if(!T||T==="INDENT"||T==="OUTDENT"||T==="TERMINATOR"||T==="RENDER")S=!0}}if(X||Y==="IDENTIFIER"&&(F(O[1])||N)||S){let o=h("CALL_START","(",O),T=h("->","->",O);return T.newLine=!0,K.splice(W+1,0,o,T),$.push(U+1),3}else{let o=h(",",",",O),T=h("->","->",O);return T.newLine=!0,K.splice(W+1,0,o,T),3}}}if(Y==="IDENTIFIER"&&M(O[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return K.splice(W+1,0,h("CALL_START","(",O),h("CALL_END",")",O)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(h){let A=h.split("#")[0];return X1.has(A.toLowerCase())},u.isComponent=function(h){if(!h||typeof h!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(h)},u.collectTemplateClasses=function(h){let A=[],R=h;while(this.is(R,".")){let M=R[2];if(typeof M==="string"||M instanceof String)A.unshift(M.valueOf());R=R[1]}let U=typeof R==="string"?R:R instanceof String?R.valueOf():null;if(U===null)return{tag:null,classes:A,id:void 0,base:R};let[$,z]=U.split("#");if(!$)$="div";return{tag:$,classes:A,id:z,base:R}};let l=(h)=>typeof h==="string"?h:h instanceof String?h.valueOf():null,i=(h,A)=>{if(!(h instanceof String))return A;let R=new String(A);if(h.predicate)R.predicate=!0;if(h.await)R.await=!0;return R.predicate||R.await?R:A};u.transformComponentMembers=function(h,A=new Set){let R=this._self;if(!Array.isArray(h)){let U=l(h);if(U&&A.has(U))return h;if(U&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".",R,U],i(h,"value")];if(U&&this.componentMembers&&this.componentMembers.has(U))return[".",R,i(h,U)];return h}if(h[0]==="."&&h[1]==="this"&&l(h[2])!=null){let U=h[2],$=l(U);if(this.reactiveMembers&&this.reactiveMembers.has($))return[".",[".",R,$],i(U,"value")];return this._factoryMode?[".",R,U]:h}if(h[0]==="."||h[0]==="?.")return[h[0],this.transformComponentMembers(h[1]),h[2]];if(h[0]==="->"){let U=h[1],$=new Set(A);if(Array.isArray(U))for(let z of U){let M=l(Array.isArray(z)&&z[0]==="default"?z[1]:z);if(M)$.add(M)}return["=>",h[1],this.transformComponentMembers(h[2],$)]}if(h[0]==="object"||h[0]==="map-literal")return[h[0],...h.slice(1).map((U)=>{if(Array.isArray(U)&&U[0]==="...")return["...",this.transformComponentMembers(U[1],A)];if(Array.isArray(U)&&U.length>=2){let $=U[1],z=Array.isArray($)?this.transformComponentMembers($,A):$,M=this.transformComponentMembers(U[2],A);return[U[0],z,M]}return this.transformComponentMembers(U,A)})];if(h[0]==="block"||h[0]==="program"){let U=new Set(A),$=[h[0]];for(let z=1;z<h.length;z++){let M=h[z];if(Array.isArray(M)&&M[0]==="="){let F=l(M[1]);if(F&&!(this.reactiveMembers&&this.reactiveMembers.has(F))){$.push(["=",M[1],this.transformComponentMembers(M[2],U)]),U.add(F);continue}}$.push(this.transformComponentMembers(M,U))}return $}return h.map((U)=>this.transformComponentMembers(U,A))},u.emitComponent=function(h,A,R,U){let[,$]=A,z=this.is($,"block")?$.slice(1):[],M=[],F=[],H=[],Q=[],O=[],W=[],K=[],Y=[],q=null,y=new Set,Z=new Set;for(let P of z){if(!Array.isArray(P))continue;let[E]=P;if(E==="offer"){if(P=P[1],!Array.isArray(P))continue;E=P[0];let a=P1(P[1]);if(a)K.push(a)}if(E==="accept"){let a=typeof P[1]==="string"?P[1]:P1(P[1]);if(a)Y.push(a),y.add(a),Z.add(a)}else if(E==="."&&P[1]==="this"&&P1(P)){let a=typeof P[2]==="string"||P[2]instanceof String?P[2].valueOf():null;if(a)M.push({name:a,value:void 0,isPublic:!0,type:P[2]?.type||null,required:!0}),y.add(a),Z.add(a)}else if(E==="state"){let a=P1(P[1]);if(a)M.push({name:a,value:P[2],isPublic:X2(P[1]),type:P2(P[1])}),y.add(a),Z.add(a)}else if(E==="computed"){let a=P1(P[1]);if(a)F.push({name:a,expr:P[2],type:P2(P[1])}),y.add(a),Z.add(a)}else if(E==="readonly"){let a=P1(P[1]);if(a)H.push({name:a,value:P[2],isPublic:X2(P[1]),type:P2(P[1])}),y.add(a)}else if(E==="="){let a=P1(P[1]);if(a)if(J2.has(a))O.push({name:a,value:P[2]});else{let d=P[2];if(Array.isArray(d)&&(d[0]==="->"||d[0]==="=>"))Q.push({name:a,func:d}),y.add(a);else M.push({name:a,value:d,isPublic:X2(P[1])}),y.add(a),Z.add(a)}}else if(E==="effect")W.push(P);else if(E==="render")q=P;else if(E==="object")for(let a=1;a<P.length;a++){let d=P[a];if(!Array.isArray(d))continue;let[,k,n1]=d;if(typeof k==="string"&&J2.has(k))O.push({name:k,value:n1});else if(typeof k==="string")Q.push({name:k,func:n1}),y.add(k)}}let J=new Map;for(let{name:P}of Q)if(/^on[A-Z]/.test(P)&&!J2.has(P)){let E=P[2].toLowerCase()+P.slice(3);if(M3.has(E))J.set(E,P)}let X=A[0]?.valueOf?.()??null,N=new Set;for(let{name:P,isPublic:E}of M)if(E)N.add(P);for(let{name:P,isPublic:E}of H)if(E)N.add(P);if(X)y.add("rest"),Z.add("rest");let S=this.componentMembers,I=this.reactiveMembers,o=this._autoEventHandlers,T=this._inheritsTag;if(this.componentMembers=y,this.reactiveMembers=Z,this._autoEventHandlers=J.size>0?J:null,this._inheritsTag=X||null,this.options.stubComponents){let P=(B)=>B?B.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,E=[],a=this._componentTypeParams||"";E.push(`class ${a}{`),E.push(" declare _root: Element | null; declare app: any;"),E.push(" emit(_name: string, _detail?: any): void {}");let d=[];for(let{name:B,type:g,isPublic:j,required:s}of M){if(!j)continue;let f1=P(g),c1=s?"":"?";d.push(`${B}${c1}: ${f1||"any"}`),d.push(`__bind_${B}__?: Signal<${f1||"any"}>`)}for(let{name:B,type:g,isPublic:j}of H){if(!j)continue;let s=P(g);d.push(`${B}?: ${s||"any"}`)}{let g=d.length>0&&M.some((s)=>s.isPublic&&s.required)?"":"?",j=d.length>0?`{${d.join("; ")}}`:"{}";if(X)j+=` & __RipProps<'${X}'>`;E.push(` constructor(_props${g}: ${j}) {}`)}let k=(B)=>{let g=B?.valueOf?.()??B;if(typeof g!=="string")return null;if(g==="true"||g==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(g))return"number";if(g.startsWith('"')||g.startsWith("'"))return"string";return null};for(let{name:B,type:g,value:j}of M){let s=P(g)||k(j);E.push(s?` declare ${B}: Signal<${s}>;`:` declare ${B}: Signal<any>;`)}if(X)E.push(` declare rest: Signal<__RipProps<'${X}'>>;`);for(let{name:B,type:g,value:j}of H){let s=P(g)||k(j);E.push(s?` declare ${B}: ${s};`:` declare ${B}: any;`)}for(let{name:B,expr:g,type:j}of F){let s=P(j),f1=s?`: Computed<${s}>`:"";if(this.is(g,"block")){let c1=this.transformComponentMembers(g),m=this.emitFunctionBody(c1);E.push(` ${B}${f1} = __computed(() => ${m});`)}else{let c1=this.emitInComponent(g,"value");E.push(` ${B}${f1} = __computed(() => ${c1});`)}}E.push(" _init(props) {");for(let{name:B,value:g,isPublic:j}of H){let s=this.emitInComponent(g,"value");E.push(j?` this.${B} = props.${B} ?? ${s};`:` this.${B} = ${s};`)}for(let{name:B,value:g,isPublic:j,required:s,type:f1}of M)if(j&&s)E.push(` this.${B} = __state(props.__bind_${B}__ ?? props.${B});`);else if(j){let c1=this.emitInComponent(g,"value");E.push(` this.${B} = __state(props.__bind_${B}__ ?? props.${B} ?? ${c1});`)}else{let c1=this.emitInComponent(g,"value");E.push(` this.${B} = __state(${c1});`)}for(let B of W){let g=B[2],j=this.containsAwait(g)?"async ":"";if(this.is(g,"block")){let s=this.transformComponentMembers(g),f1=this.emitFunctionBody(s);E.push(` __effect(${j}() => ${f1});`)}else{let s=this.emitInComponent(g,"value");E.push(` __effect(${j}() => { return ${s}; });`)}}E.push(" }");let n1=new Map;for(let[B,g]of J)n1.set(g,B);if(q){let B=(g)=>{if(!Array.isArray(g))return;let j=g[0]?.valueOf?.()??g[0];if(typeof j==="string"&&j!=="object"&&j!=="switch"&&X1.has(j.split(/[.#]/)[0]))for(let s=1;s<g.length;s++){let f1=g[s],c1=this.is(f1,"object")?f1:null;if(!c1&&Array.isArray(f1)&&(f1[0]==="->"||f1[0]==="=>")&&this.is(f1[2],"block")){for(let m=1;m<f1[2].length;m++)if(this.is(f1[2][m],"object")){c1=f1[2][m];break}}if(!c1)continue;for(let m=1;m<c1.length;m++){let x=c1[m];if(!Array.isArray(x)||x.length<2)continue;let[,_1,p]=x;if(Array.isArray(_1)&&_1[0]==="."&&_1[1]==="this"&&Array.isArray(p)&&p[0]==="."&&p[1]==="this"){let b=typeof _1[2]==="string"?_1[2]:_1[2]?.valueOf?.(),V=typeof p[2]==="string"?p[2]:p[2]?.valueOf?.();if(b&&V&&!n1.has(V))n1.set(V,b)}}}for(let s=1;s<g.length;s++)B(g[s])};B(q)}for(let{name:B,func:g}of Q)if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>")){let[,j,s]=g;if((!j||Array.isArray(j)&&j.length===0)&&this.containsIt(s))j=["it"];let f1=Array.isArray(j)?j.map((p)=>{let b=this.formatParam(p);if(p?.type)b+=`: ${p.type}`;return b}).join(", "):"",c1=n1.get(B);if(c1&&Array.isArray(j)&&j.length>0){let p=j[0];if(!(p?.type||p instanceof String&&p.type)&&typeof(p?.valueOf?.()??p)==="string"){let V=p?.valueOf?.()??p;f1=f1.replace(V,`${V}: HTMLElementEventMap['${c1}']`)}}let m=this.reactiveMembers?this.transformComponentMembers(s):s,x=this.containsAwait(s),_1=this.emitFunctionBody(m,j||[]);E.push(` ${x?"async ":""}${B}(${f1}) ${_1}`)}for(let{name:B,value:g}of O)if(Array.isArray(g)&&(g[0]==="->"||g[0]==="=>")){let[,j,s]=g,f1=Array.isArray(j)?j.map((_1)=>this.formatParam(_1)).join(", "):"",c1=this.reactiveMembers?this.transformComponentMembers(s):s,m=this.containsAwait(s),x=this.emitFunctionBody(c1,j||[]);E.push(` ${m?"async ":""}${B}(${f1}) ${x}`)}if(q){let B=[],g=0,j=this.options.source?.split(`
|
|
1041
|
-
`),
|
|
1042
|
-
`)}this.usesTemplates=!0,this.usesReactivity=!0;let G=[],e="";G.push("class extends __Component {"),G.push(" _init(props) {");for(let{name:P,value:E,isPublic:a}of H){let d=this.emitInComponent(E,"value");G.push(a?` this.${P} = props.${P} ?? ${d};`:` this.${P} = ${d};`)}for(let P of Y)G.push(` this.${P} = getContext('${P}');`);for(let{name:P,value:E,isPublic:a,required:d}of M)if(a&&d)G.push(` this.${P} = __state(props.__bind_${P}__ ?? props.${P});`);else if(a){let k=this.emitInComponent(E,"value");G.push(` this.${P} = __state(props.__bind_${P}__ ?? props.${P} ?? ${k});`)}else{let k=this.emitInComponent(E,"value");G.push(` this.${P} = __state(${k});`)}if(X){if(G.push(" this._rest = {};"),G.push(" for (const __k in props) {"),N.size>0){let P=[...N].map((E)=>`__k !== '${E}'`).join(" && ");G.push(` if (${P} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else G.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");G.push(" }"),G.push(" this.rest = __state(this._rest);")}for(let{name:P,expr:E}of F)if(this.is(E,"block")){let a=this.transformComponentMembers(E),d=this.emitFunctionBody(a);G.push(` this.${P} = __computed(() => ${d});`)}else{let a=this.emitInComponent(E,"value");G.push(` this.${P} = __computed(() => ${a});`)}for(let P of K)G.push(` setContext('${P}', this.${P});`);for(let P of W){let E=P[2],a=this.containsAwait(E)?"async ":"";if(this.is(E,"block")){let d=this.transformComponentMembers(E),k=this.emitFunctionBody(d);G.push(` __effect(${a}() => ${k});`)}else{let d=this.emitInComponent(E,"value");G.push(` __effect(${a}() => { return ${d}; });`)}}if(G.push(" }"),X)G.push(" _setRestProp(key, value) {"),G.push(" if (key.startsWith('__bind_')) return;"),G.push(" this._rest || (this._rest = {});"),G.push(" if (value == null) delete this._rest[key];"),G.push(" else this._rest[key] = value;"),G.push(" this.rest.touch();"),G.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),G.push(" }"),G.push(" _applyRestToInheritedEl() {"),G.push(" if (!this._inheritedEl || !this._rest) return;"),G.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),G.push(" }"),G.push(" _applyInheritedProp(el, key, value) {"),G.push(" if (!el || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return;"),G.push(" if (key[0] === '@') {"),G.push(" const event = key.slice(1).split('.')[0];"),G.push(" this._restHandlers || (this._restHandlers = {});"),G.push(" const prev = this._restHandlers[key];"),G.push(" if (prev) el.removeEventListener(event, prev);"),G.push(" if (typeof value === 'function') {"),G.push(" const next = (e) => __batch(() => value(e));"),G.push(" this._restHandlers[key] = next;"),G.push(" el.addEventListener(event, next);"),G.push(" } else {"),G.push(" delete this._restHandlers[key];"),G.push(" }"),G.push(" return;"),G.push(" }"),G.push(" if (key === 'class' || key === 'className') {"),G.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),G.push(" else el.className = __clsx(value);"),G.push(" return;"),G.push(" }"),G.push(" if (key === 'style') {"),G.push(" if (value == null) { el.removeAttribute('style'); return; }"),G.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),G.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),G.push(" }"),G.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),G.push(" el[key] = value ?? '';"),G.push(" return;"),G.push(" }"),G.push(" if (key in el && !key.includes('-')) {"),G.push(" el[key] = value;"),G.push(" return;"),G.push(" }"),G.push(" if (value == null || value === false) {"),G.push(" el.removeAttribute(key);"),G.push(" return;"),G.push(" }"),G.push(" if (value === true) {"),G.push(" el.setAttribute(key, '');"),G.push(" return;"),G.push(" }"),G.push(" el.setAttribute(key, value);"),G.push(" }");for(let{name:P,func:E}of Q)if(Array.isArray(E)&&(E[0]==="->"||E[0]==="=>")){let[,a,d]=E;if((!a||Array.isArray(a)&&a.length===0)&&this.containsIt(d))a=["it"];let k=Array.isArray(a)?a.map((j)=>this.formatParam(j)).join(", "):"",n1=this.reactiveMembers?this.transformComponentMembers(d):d,B=this.containsAwait(d),g=this.emitFunctionBody(n1,a||[]);G.push(` ${B?"async ":""}${P}(${k}) ${g}`)}for(let{name:P,value:E}of O)if(Array.isArray(E)&&(E[0]==="->"||E[0]==="=>")){let[,a,d]=E,k=Array.isArray(a)?a.map((j)=>this.formatParam(j)).join(", "):"",n1=this.reactiveMembers?this.transformComponentMembers(d):d,B=this.containsAwait(d),g=this.emitFunctionBody(n1,a||[]);G.push(` ${B?"async ":""}${P}(${k}) ${g}`)}if(q){let P=q[1],E=this.buildRender(P);if(E.blockFactories.length>0)e=E.blockFactories.join(`
|
|
1859
|
+
`;var _5={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,Gate:22,If:23,Try:24,While:25,For:26,Switch:27,Class:28,Component:29,Render:30,Throw:31,Yield:32,Def:33,Enum:34,Schema:35,CodeLine:36,OperationLine:37,Assignable:38,Literal:39,Parenthetical:40,Range:41,Invocation:42,DoIife:43,This:44,Super:45,MetaProperty:46,MapLiteral:47,Atom:48,JS:49,Regex:50,UNDEFINED:51,NULL:52,BOOL:53,INFINITY:54,NAN:55,SYMBOL:56,NUMBER:57,String:58,Identifier:59,IDENTIFIER:60,Property:61,PROPERTY:62,STRING:63,STRING_START:64,Interpolations:65,STRING_END:66,InterpolationChunk:67,INTERPOLATION_START:68,INTERPOLATION_END:69,INDENT:70,OUTDENT:71,REGEX:72,REGEX_START:73,REGEX_END:74,RegexWithIndex:75,",":76,"=":77,REACTIVE_ASSIGN:78,COMPUTED_ASSIGN:79,Block:80,READONLY_ASSIGN:81,GATE:82,EFFECT:83,SimpleAssignable:84,Array:85,Object:86,Subjectable:87,ThisProperty:88,".":89,"?.":90,INDEX_START:91,INDEX_END:92,Slice:93,PICK_START:94,PickList:95,OptComma:96,PICK_END:97,OPTPICK_START:98,ES6_OPTIONAL_INDEX:99,"{":100,ObjAssignable:101,":":102,FOR:103,ForVariables:104,FOROF:105,"}":106,WHEN:107,OWN:108,AssignList:109,AssignObj:110,ObjRestValue:111,SimpleObjAssignable:112,"[":113,"]":114,"@":115,"...":116,ObjSpreadExpr:117,SUPER:118,Arguments:119,DYNAMIC_IMPORT:120,MAP_START:121,MapAssignList:122,MAP_END:123,MapAssignObj:124,MapAssignable:125,PickItem:126,PickKey:127,Elisions:128,ArgElisionList:129,OptElisions:130,ArgElision:131,Arg:132,Elision:133,RangeDots:134,"..":135,DEF:136,CALL_START:137,ParamList:138,CALL_END:139,PARAM_START:140,PARAM_END:141,ArrowKind:142,"->":143,"=>":144,Param:145,ParamVar:146,Splat:147,ES6_OPTIONAL_CALL:148,ArgList:149,SimpleArgs:150,THIS:151,NEW_TARGET:152,IMPORT_META:153,"(":154,")":155,RETURN:156,THROW:157,YIELD:158,FROM:159,IfBlock:160,IF:161,IfElseTail:162,ELSE:163,UnlessBlock:164,UNLESS:165,POST_IF:166,POST_UNLESS:167,TRY:168,Catch:169,FINALLY:170,CATCH:171,SWITCH:172,Cases:173,When:174,LEADING_WHEN:175,WhileSource:176,WHILE:177,UNTIL:178,Loop:179,LOOP:180,FORIN:181,BY:182,FORAS:183,AWAIT:184,FORASAWAIT:185,ForValue:186,ClassName:187,CLASS:188,EXTENDS:189,ENUM:190,SCHEMA:191,SCHEMA_BODY:192,COMPONENT:193,ComponentBody:194,ComponentLine:195,OFFER:196,ACCEPT:197,RENDER:198,IMPORT:199,ImportDefaultSpecifier:200,ImportNamespaceSpecifier:201,ImportSpecifierList:202,ImportSpecifier:203,AS:204,DEFAULT:205,IMPORT_ALL:206,EXPORT:207,ExportSpecifierList:208,EXPORT_ALL:209,ExportSpecifier:210,UNARY:211,DO:212,DO_IIFE:213,UNARY_MATH:214,"-":215,"+":216,"?":217,PRESENCE:218,"--":219,"++":220,MATH:221,"**":222,SHIFT:223,COMPARE:224,"&":225,"^":226,"|":227,"||":228,"??":229,"&&":230,RELATION:231,TERNARY:232,COMPOUND_ASSIGN:233},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",49:"JS",51:"UNDEFINED",52:"NULL",53:"BOOL",54:"INFINITY",55:"NAN",56:"SYMBOL",57:"NUMBER",60:"IDENTIFIER",62:"PROPERTY",63:"STRING",64:"STRING_START",66:"STRING_END",68:"INTERPOLATION_START",69:"INTERPOLATION_END",70:"INDENT",71:"OUTDENT",72:"REGEX",73:"REGEX_START",74:"REGEX_END",76:",",77:"=",78:"REACTIVE_ASSIGN",79:"COMPUTED_ASSIGN",81:"READONLY_ASSIGN",82:"GATE",83:"EFFECT",89:".",90:"?.",91:"INDEX_START",92:"INDEX_END",94:"PICK_START",97:"PICK_END",98:"OPTPICK_START",99:"ES6_OPTIONAL_INDEX",100:"{",102:":",103:"FOR",105:"FOROF",106:"}",107:"WHEN",108:"OWN",113:"[",114:"]",115:"@",116:"...",118:"SUPER",120:"DYNAMIC_IMPORT",121:"MAP_START",123:"MAP_END",135:"..",136:"DEF",137:"CALL_START",139:"CALL_END",140:"PARAM_START",141:"PARAM_END",143:"->",144:"=>",148:"ES6_OPTIONAL_CALL",151:"THIS",152:"NEW_TARGET",153:"IMPORT_META",154:"(",155:")",156:"RETURN",157:"THROW",158:"YIELD",159:"FROM",161:"IF",163:"ELSE",165:"UNLESS",166:"POST_IF",167:"POST_UNLESS",168:"TRY",170:"FINALLY",171:"CATCH",172:"SWITCH",175:"LEADING_WHEN",177:"WHILE",178:"UNTIL",180:"LOOP",181:"FORIN",182:"BY",183:"FORAS",184:"AWAIT",185:"FORASAWAIT",188:"CLASS",189:"EXTENDS",190:"ENUM",191:"SCHEMA",192:"SCHEMA_BODY",193:"COMPONENT",196:"OFFER",197:"ACCEPT",198:"RENDER",199:"IMPORT",204:"AS",205:"DEFAULT",206:"IMPORT_ALL",207:"EXPORT",209:"EXPORT_ALL",211:"UNARY",212:"DO",213:"DO_IIFE",214:"UNARY_MATH",215:"-",216:"+",217:"?",218:"PRESENCE",219:"--",220:"++",221:"MATH",222:"**",223:"SHIFT",224:"COMPARE",225:"&",226:"^",227:"|",228:"||",229:"??",230:"&&",231:"RELATION",232:"TERNARY",233:"COMPOUND_ASSIGN"},parseTable:(()=>{let e=[114,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,1,1,0,2,1,5,-2,114,5,1,5,63,2,84,-3,-3,-3,-3,-3,29,1,5,63,1,1,5,27,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,132,-6,-6,-6,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,9,1,5,63,1,1,5,38,25,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,63,1,1,5,38,25,16,11,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,133,134,135,103,104,57,1,5,52,5,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,3,4,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-13,-13,138,112,113,-13,-13,-13,-13,-94,-94,-94,-13,-94,-13,-94,-94,-13,-13,-13,-13,-13,-13,-13,139,-13,-13,141,-13,-13,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,136,137,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,49,1,5,63,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-95,-95,-95,-14,-95,-14,-95,-95,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,63,1,1,5,38,25,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,9,1,5,63,1,1,5,38,25,16,-36,-36,-36,-36,-36,-36,-36,-36,-36,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,142,143,144,145,147,146,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,18,6,53,1,10,1,5,9,1,2,12,13,2,1,22,1,2,4,1,-217,152,111,-217,-217,-217,154,155,153,106,157,156,151,148,-217,-217,149,150,113,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,159,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,158,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,161,162,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,164,165,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,166,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,172,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,173,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,174,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,175,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,49,14,1,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,177,178,179,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,176,76,77,100,99,106,88,92,89,90,95,167,168,96,97,91,93,94,87,171,49,14,1,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,177,178,179,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,180,76,77,100,99,106,88,92,89,90,95,167,168,96,97,91,93,94,87,171,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,181,182,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,183,110,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,185,184,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,186,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,2,70,10,160,187,2,70,10,160,188,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,14,41,18,1,25,1,2,12,4,4,5,2,31,38,2,192,152,111,154,155,153,106,189,190,88,156,194,191,193,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,195,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,196,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,50,1,5,53,1,9,1,1,5,4,8,4,5,5,1,2,1,1,7,1,1,7,12,4,2,14,8,3,1,10,1,3,1,1,2,2,2,26,1,5,1,1,1,1,1,1,1,1,1,1,1,-354,-354,200,111,-354,160,-354,-354,197,201,-354,-354,-354,-354,-354,-354,-354,-354,156,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,199,198,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,2,70,119,202,203,109,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,205,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,204,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,206,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,207,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,146,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,7,1,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,2,12,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,208,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-268,209,-268,109,110,-268,56,55,76,77,100,99,-268,-268,106,-268,-268,-268,-268,-268,88,-268,92,-268,89,90,95,-268,-268,69,-268,167,-268,168,96,97,91,93,94,87,-268,73,67,68,210,57,101,-268,58,102,-268,-268,59,63,60,-268,-268,61,105,-268,-268,-268,52,-268,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,2,59,1,211,111,2,59,1,212,111,1,192,213,6,15,21,104,2,1,1,215,214,45,46,96,97,145,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,7,1,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,2,12,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,216,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-265,217,-265,109,110,-265,56,55,76,77,100,99,-265,-265,106,-265,-265,-265,-265,-265,88,-265,92,-265,89,90,95,-265,-265,69,-265,167,-265,168,96,97,91,93,94,87,-265,73,67,68,57,101,-265,58,102,-265,-265,59,63,60,-265,-265,61,105,-265,-265,-265,52,-265,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,9,58,1,1,3,1,36,100,1,5,218,222,111,112,113,221,219,220,223,64,14,1,3,1,1,1,7,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,13,2,3,2,1,15,4,2,1,1,7,1,1,1,34,2,3,12,4,4,177,178,230,231,232,233,225,226,227,228,236,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,229,111,112,113,109,110,56,237,76,77,100,99,224,88,92,89,90,95,69,167,168,96,97,91,93,94,87,64,70,65,234,235,171,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,113,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,238,3,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,239,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,120,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,7,1,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,240,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,246,109,110,247,56,55,76,77,100,99,106,62,88,241,92,251,89,90,95,242,243,245,248,244,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,4,89,2,28,18,253,254,252,141,2,119,18,255,141,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,57,1,5,55,1,1,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-250,-250,256,257,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,1,89,258,1,89,259,35,6,34,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,9,1,2,12,13,2,1,6,1,1,1,29,-154,276,267,268,271,270,269,272,273,277,107,108,264,111,265,257,112,113,-154,-154,109,110,-154,274,275,266,106,157,156,263,260,-154,261,262,87,57,11,38,2,1,1,1,1,1,1,3,3,1,6,2,1,10,17,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,57,11,38,2,1,1,1,1,1,1,3,3,1,6,2,1,10,17,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,6,89,1,1,3,4,1,278,279,280,281,282,283,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,284,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,285,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,286,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,287,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,109,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,289,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,288,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,23,6,42,9,1,1,1,1,1,1,1,6,1,5,12,13,5,3,1,1,1,1,2,1,-116,295,107,108,297,111,298,257,112,113,-116,-116,-116,299,290,-116,291,296,300,292,293,294,301,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,49,14,1,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,11,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,177,178,179,36,37,38,302,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,237,76,77,100,99,106,88,92,89,90,95,167,168,96,97,91,93,94,87,171,67,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,4,4,3,1,10,1,3,1,1,2,4,15,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,58,1,5,57,1,2,2,1,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,6,58,5,1,1,2,1,306,112,113,303,304,305,116,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,1,1,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-5,307,-5,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-5,-5,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,-5,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,308,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,309,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,310,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,311,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,312,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,313,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,314,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,315,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,316,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,319,163,317,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,318,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,322,163,320,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,321,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,325,163,323,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,324,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,326,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,327,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,328,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,329,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,14,41,18,1,25,1,2,12,4,4,5,2,31,38,2,333,152,111,154,155,153,106,330,331,88,156,194,332,193,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,334,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,335,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,119,18,336,141,116,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,340,109,110,56,55,76,77,100,99,106,62,88,92,251,89,90,95,339,69,337,45,46,96,97,250,338,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,343,342,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,344,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,346,345,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,347,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,110,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,349,348,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,350,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,352,351,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,353,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,110,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,355,354,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,356,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,357,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,11,6,64,1,5,20,1,9,8,9,16,2,-261,-261,-261,359,360,-261,-261,-261,-261,-261,358,6,6,64,1,5,63,2,-218,-218,-218,-218,-218,-218,7,6,64,1,5,1,62,2,-222,-222,-222,-222,361,-222,-222,15,6,53,1,10,1,5,9,1,2,12,13,2,24,2,5,-225,152,111,-225,-225,-225,154,155,153,106,157,156,-225,-225,362,11,6,64,1,5,1,28,34,2,40,2,2,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,11,6,64,1,5,1,28,34,2,40,2,2,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,11,6,64,1,5,1,28,34,2,40,2,2,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,11,6,64,1,5,1,28,34,2,40,2,2,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,2,61,1,256,257,120,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,7,1,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,246,109,110,247,56,55,76,77,100,99,106,62,88,241,92,251,89,90,95,242,243,245,248,244,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,9,1,5,63,1,1,5,38,25,16,-214,-214,-214,-214,-214,-214,-214,-214,-214,113,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,364,3,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,363,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,131,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,9,1,5,63,1,1,5,38,25,16,-422,-422,-422,-422,-422,-422,-422,-422,-422,5,166,1,9,1,1,133,134,135,103,104,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,131,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,9,1,5,63,1,1,5,38,25,16,-423,-423,-423,-423,-423,-423,-423,-423,-423,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,131,-427,-427,-427,-427,-427,-427,-427,-427,-427,118,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,18,6,53,1,10,1,5,9,1,2,12,13,2,1,22,1,2,4,1,-217,152,111,-217,-217,-217,154,155,153,106,157,156,151,365,-217,-217,149,150,2,70,10,160,158,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,161,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,164,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,5,15,125,2,1,1,215,167,168,96,97,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,131,-428,-428,-428,-428,-428,-428,-428,-428,-428,118,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,131,-429,-429,-429,-429,-429,-429,-429,-429,-429,118,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,131,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,2,86,14,366,106,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-91,-91,-434,-434,-434,-434,-91,-91,-91,-91,-91,-91,-91,-91,-91,-434,-91,-434,-91,-91,-434,-434,-434,-434,-434,-434,-434,-434,-434,-91,-434,-434,-91,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-91,-91,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,12,58,5,1,25,1,1,3,4,1,20,18,11,138,112,113,-94,-94,-94,-94,-94,-94,139,141,140,6,89,1,1,3,4,1,-95,-95,-95,-95,-95,-95,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-91,-91,-435,-435,-435,-435,-91,-91,-91,-91,-91,-91,-91,-91,-91,-435,-91,-435,-91,-91,-435,-435,-435,-435,-435,-435,-435,-435,-435,-91,-435,-435,-91,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-91,-91,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,369,367,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,368,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,132,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,129,130,131,103,104,-88,-88,-88,-88,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,370,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,46,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,2,1,1,6,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,371,372,373,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,4,105,76,2,2,375,374,376,377,11,59,1,25,1,2,12,4,9,2,31,40,152,111,154,155,153,106,378,157,156,194,193,11,59,1,25,1,2,12,4,9,2,31,40,152,111,154,155,153,106,379,157,156,194,193,3,70,10,102,160,380,381,5,76,29,76,2,2,382,-350,-350,-350,-350,6,76,1,28,76,2,2,-348,383,-348,-348,-348,-348,21,70,33,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,384,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,3,173,1,1,385,386,387,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,388,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,45,1,5,63,1,1,5,4,12,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,160,-358,-358,389,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,390,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,393,394,395,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,391,392,396,397,66,74,75,47,48,72,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,398,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,132,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,131,103,104,-375,-375,-375,-375,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,131,-266,-266,-266,-266,-266,-266,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,86,14,399,106,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,131,-269,-269,-269,-269,-269,-269,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,86,14,400,106,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,401,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,70,10,57,160,403,402,2,70,10,160,404,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,9,1,5,63,1,1,5,38,25,16,-424,-424,-424,-424,-424,-424,-424,-424,-424,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,131,-263,-263,-263,-263,-263,-263,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,86,14,405,106,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,2,76,83,407,406,1,159,408,7,59,1,10,36,96,1,2,413,111,412,409,410,411,414,2,76,83,-392,-392,1,204,415,26,6,42,9,1,1,1,1,1,1,1,6,1,5,12,13,5,3,1,1,1,1,2,1,89,3,2,-116,295,107,108,420,111,298,257,112,113,419,-116,-116,299,290,416,291,296,300,292,293,294,301,421,417,418,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,422,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,423,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,424,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,159,425,59,1,5,57,1,5,1,1,5,2,1,2,2,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,143,144,145,146,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,2,6,149,114,426,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,427,3,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,29,6,64,1,5,27,11,2,18,1,4,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,132,-243,430,428,429,-243,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,116,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,7,1,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,247,56,55,76,77,100,99,106,62,88,431,92,251,89,90,95,433,432,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,11,6,64,1,5,20,1,9,8,9,7,9,-261,-261,-261,435,436,-261,-261,-261,-261,434,-261,62,6,5,38,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,7,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,437,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,5,6,64,1,5,38,-189,-189,-189,-189,-189,119,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,7,1,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,246,109,110,247,56,55,76,77,100,99,106,62,88,92,251,89,90,95,439,438,245,248,244,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,62,6,5,38,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,7,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,5,6,64,1,5,38,-194,-194,-194,-194,-194,6,6,64,1,5,38,25,-244,-244,-244,-244,-244,-244,6,6,64,1,5,38,25,-245,-245,-245,-245,-245,-245,113,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,7,1,1,1,1,1,12,3,10,1,1,3,2,1,15,3,1,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-246,440,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-246,-246,109,110,-246,56,55,76,77,100,99,106,62,88,-246,92,89,90,95,69,-246,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,61,1,441,257,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,442,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,443,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,65,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,4,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,65,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,4,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,2,61,1,444,257,2,61,1,445,257,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,447,446,-261,-261,-261,-261,-261,5,6,64,1,5,47,-155,-155,-155,-155,-155,1,102,448,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,449,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,102,-172,1,102,-173,1,102,-174,1,102,-175,1,102,-176,1,102,-177,1,102,-178,1,102,-179,1,102,-180,1,102,-181,1,102,-182,1,102,-183,1,102,-184,1,102,-185,2,61,1,450,257,2,61,1,451,257,113,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,8,1,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,452,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,457,81,82,83,84,85,86,107,108,98,111,112,113,453,109,110,455,56,55,76,77,100,99,454,106,62,88,92,430,89,90,95,456,429,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,8,59,1,1,1,8,25,31,1,462,111,463,257,459,458,460,461,8,59,1,1,1,8,25,31,1,462,111,463,257,465,464,460,461,1,91,466,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,467,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,468,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,132,-303,-303,469,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,131,103,104,-303,-303,-303,-303,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,132,-305,-305,470,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,131,103,104,-305,-305,-305,-305,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,45,1,5,63,1,1,5,4,12,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,160,-312,-312,471,-312,-312,-312,132,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,131,103,104,-312,-312,-312,-312,116,115,117,118,119,120,121,122,123,124,125,126,127,128,6,6,64,1,5,26,4,-121,-121,-121,-121,472,-121,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,474,473,-261,-261,-261,-261,-261,7,6,64,1,5,1,25,4,-130,-130,-130,-130,475,-130,-130,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,476,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,61,1,51,256,257,477,6,6,64,1,5,26,4,-133,-133,-133,-133,-133,-133,5,6,64,1,5,30,-117,-117,-117,-117,-117,13,6,64,1,5,1,12,1,1,3,4,4,4,31,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,13,6,64,1,5,1,12,1,1,3,4,4,4,31,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,13,6,64,1,5,1,12,1,1,3,4,4,4,31,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,5,6,64,1,5,30,-122,-122,-122,-122,-122,17,40,4,1,14,1,1,1,24,2,12,12,3,2,1,2,31,3,481,483,482,297,111,298,257,480,299,106,478,92,479,484,485,91,87,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,486,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,6,58,5,1,2,1,1,306,112,113,487,488,305,4,63,1,2,2,-62,-62,-62,-62,114,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,489,3,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,491,490,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,4,63,1,2,2,-67,-67,-67,-67,5,1,5,63,2,84,-4,-4,-4,-4,-4,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,-438,-438,-438,-438,-438,-438,-438,-438,117,118,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,-439,-439,-439,-439,-439,-439,-439,-439,117,118,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,-440,-440,-440,-440,-440,-440,-440,-440,-440,118,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,-441,-441,-441,-441,-441,-441,-441,-441,-441,118,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,131,-442,-442,-442,-442,-442,-442,116,115,117,118,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,-443,-443,-443,-443,-443,-443,116,115,117,118,119,-443,-443,-443,-443,-443,-443,-443,127,-443,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,131,-444,-444,-444,-444,-444,-444,116,115,117,118,119,120,-444,-444,-444,-444,-444,-444,127,-444,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,131,-445,-445,-445,-445,-445,-445,116,115,117,118,119,120,121,-445,-445,-445,-445,-445,127,-445,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,131,-446,-446,-446,-446,-446,-446,116,115,117,118,119,120,121,122,-446,-446,-446,-446,127,-446,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,131,-454,-454,-454,-454,-454,-454,116,115,117,118,119,120,121,122,123,-454,-454,126,127,-454,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,131,-455,-455,-455,-455,-455,-455,116,115,117,118,119,120,121,122,123,-455,-455,126,127,-455,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,131,-453,-453,-453,-453,-453,-453,116,115,117,118,119,120,121,122,123,-453,-453,-453,127,-453,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,131,-456,-456,-456,-456,-456,-456,116,115,117,118,119,-456,-456,-456,-456,-456,-456,-456,-456,-456,21,102,1,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,492,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,132,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,493,-282,-282,131,103,104,-282,-282,-282,-282,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,132,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,131,103,104,-286,-286,-286,-286,116,115,117,118,119,120,121,122,123,124,125,126,127,128,4,105,76,2,2,495,494,496,497,11,59,1,25,1,2,12,4,9,2,31,40,152,111,154,155,153,106,498,157,156,194,193,11,59,1,25,1,2,12,4,9,2,31,40,152,111,154,155,153,106,499,157,156,194,193,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,500,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,132,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,131,103,104,-281,-281,-281,-281,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,132,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,131,103,104,-285,-285,-285,-285,116,115,117,118,119,120,121,122,123,124,125,126,127,128,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,502,501,-261,-261,-261,-261,-261,5,6,64,1,5,63,-238,-238,-238,-238,-238,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,340,109,110,56,55,76,77,100,99,106,62,88,92,251,89,90,95,339,69,45,46,96,97,250,503,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,26,6,64,1,5,27,11,25,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,132,-243,-243,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,-72,-72,-72,-72,-72,-72,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,504,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,505,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,132,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,129,130,131,103,104,-75,-75,-75,-75,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,506,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,507,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,132,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,129,130,131,103,104,-78,-78,-78,-78,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,508,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,132,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,129,130,131,103,104,-81,-81,-81,-81,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,509,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,510,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,132,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,129,130,131,103,104,-85,-85,-85,-85,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,511,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,132,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,129,130,131,103,104,-84,-84,-84,-84,116,115,117,118,119,120,121,122,123,124,125,126,127,128,3,142,1,1,512,96,97,19,6,53,1,10,1,14,1,2,9,3,6,7,1,1,1,7,16,6,1,-262,152,111,-262,-262,154,155,153,-262,106,-262,157,-262,156,151,-262,-262,513,150,2,6,64,514,515,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,516,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,6,6,64,1,5,63,2,-224,-224,-224,-224,-224,-224,58,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,3,1,4,2,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,2,6,65,114,517,11,6,64,1,5,20,1,9,8,9,16,2,-261,-261,-261,359,360,-261,-261,-261,-261,-261,518,1,71,519,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,131,-458,-458,-458,-458,-458,-458,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,520,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,521,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,132,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,129,130,131,103,104,-89,-89,-89,-89,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,522,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,2,70,10,160,523,8,59,1,10,10,5,1,14,13,524,111,160,527,526,525,106,157,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,528,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,529,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,530,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,531,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,105,532,1,183,533,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,534,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,10,59,1,25,1,2,12,13,2,31,40,152,111,154,155,153,106,157,156,194,535,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,536,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,173,1,1,537,386,387,4,71,92,11,1,538,539,540,387,3,71,92,12,-299,-299,-299,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,6,1,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,542,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,541,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,45,1,5,63,1,1,5,4,12,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,160,-356,-356,543,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,131,-356,-356,-356,-356,-356,-356,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,544,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,2,6,65,546,545,2,6,65,-366,-366,22,6,65,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-369,-369,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,6,65,-370,-370,7,6,65,95,1,9,1,1,-371,-371,133,134,135,103,104,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,547,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,60,548,21,70,33,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,549,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,1,71,550,1,71,551,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,131,-271,-271,-271,-271,-271,-271,116,115,117,118,119,120,121,122,123,124,125,126,127,128,18,6,53,1,10,1,5,9,1,2,12,13,2,1,22,1,2,4,1,-217,152,111,-217,-217,-217,154,155,153,106,157,156,151,552,-217,-217,149,150,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,1,71,553,3,58,5,1,554,112,113,3,100,101,5,556,555,223,3,58,5,1,557,112,113,1,159,558,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,560,559,-261,-261,-261,-261,-261,5,6,64,1,5,30,-383,-383,-383,-383,-383,6,59,1,10,132,1,2,413,111,412,561,411,414,6,6,64,1,5,30,98,-388,-388,-388,-388,-388,562,6,6,64,1,5,30,98,-390,-390,-390,-390,-390,563,2,59,1,564,111,14,1,5,63,1,1,5,38,25,16,4,7,1,10,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,565,-394,-394,-394,-394,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,567,566,-261,-261,-261,-261,-261,5,6,64,1,5,30,-412,-412,-412,-412,-412,6,59,1,10,135,3,2,569,111,419,421,568,418,14,6,64,1,5,1,12,1,1,3,4,4,4,31,67,-417,-417,-417,-417,-127,-127,-127,-127,-127,-127,-127,-417,-127,570,6,6,64,1,5,30,98,-420,-420,-420,-420,-420,571,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,573,572,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,574,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,29,1,5,63,1,1,5,27,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,132,-407,-407,-407,-407,-407,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,86,14,575,106,3,58,5,1,576,112,113,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,2,6,65,114,577,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,578,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,58,11,38,2,1,1,1,1,1,1,3,3,1,7,1,1,10,9,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,58,11,38,2,1,1,1,1,1,1,3,3,1,7,1,1,10,9,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,62,6,5,38,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,7,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,437,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,5,6,64,1,5,38,-195,-195,-195,-195,-195,2,70,44,580,579,125,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,7,1,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,2,5,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-262,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-262,-262,109,110,247,56,55,76,77,100,99,-262,106,62,-262,88,-262,92,251,89,90,95,-262,582,581,248,244,69,-262,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,4,6,64,1,43,583,-196,-196,-196,62,6,5,38,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,7,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,11,6,64,1,5,20,1,9,8,9,7,9,-261,-261,-261,435,436,-261,-261,-261,-261,584,-261,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,7,1,1,1,1,1,12,3,10,2,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,247,56,55,76,77,100,99,106,62,88,92,251,89,90,95,433,432,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,26,6,64,1,5,27,11,25,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,132,-230,-230,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,21,92,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,585,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,586,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,3,6,64,53,588,589,587,37,6,34,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,12,1,2,9,3,6,7,1,1,1,7,1,1,14,15,-262,276,267,268,271,270,269,272,273,277,107,108,264,111,265,257,112,113,-262,-262,109,110,274,275,266,-262,106,-262,157,-262,156,263,-262,590,262,-262,87,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,591,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,592,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,25,6,64,1,5,27,20,43,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,132,-161,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,24,92,11,13,18,1,31,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,593,132,430,594,429,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,111,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,595,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,596,106,62,88,92,430,89,90,95,456,429,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,92,597,1,92,598,109,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,10,1,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,599,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-208,109,110,56,55,76,77,100,99,-208,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,600,-49,-49,-49,-71,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,601,-261,-261,-261,-261,-261,7,59,1,1,1,33,31,1,462,111,463,257,603,460,461,5,6,64,1,5,21,-162,-162,-162,-162,-162,7,6,64,1,5,1,20,5,-166,-166,-166,-166,605,-166,604,7,6,64,1,5,1,20,5,-170,-170,-170,-170,-170,-170,-170,7,6,64,1,5,1,20,5,-171,-171,-171,-171,-171,-171,-171,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,606,-261,-261,-261,-261,-261,7,59,1,1,1,33,31,1,462,111,463,257,607,460,461,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,608,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,609,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,7,1,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,610,611,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,612,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,613,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,614,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,615,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,616,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,6,64,36,618,619,617,25,6,42,9,1,1,1,1,1,1,1,6,1,17,9,4,5,4,1,1,1,1,1,1,7,16,-262,295,107,108,297,111,298,257,112,113,-262,-262,299,-262,621,-262,620,300,292,293,-262,294,301,-262,-262,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,622,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,623,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,21,103,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,132,624,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,625,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,12,6,64,1,5,13,1,1,3,4,8,13,18,-134,-134,-134,-134,-136,-136,-136,-136,-136,-134,626,141,12,6,64,1,5,13,1,1,3,4,8,13,18,-135,-135,-135,-135,628,629,630,631,632,-135,627,141,11,6,64,1,5,13,1,1,3,4,8,31,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,11,6,64,1,5,13,1,1,3,4,8,31,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,11,6,64,1,5,13,1,1,3,4,8,31,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,11,6,64,1,5,13,1,1,3,4,8,31,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,4,89,2,28,18,253,254,633,141,2,119,18,634,141,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,58,1,5,57,1,2,2,1,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,4,63,1,2,2,-63,-63,-63,-63,2,6,63,114,635,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,636,3,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,4,63,1,2,2,-66,-66,-66,-66,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,637,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,639,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,638,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,640,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,641,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,642,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,643,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,105,644,1,183,645,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,646,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,6,64,69,648,649,647,121,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,10,1,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,2,9,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-262,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-262,-262,109,110,56,55,76,77,100,99,-262,106,62,-262,88,-262,92,251,89,90,95,-262,650,69,-262,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,502,651,-261,-261,-261,-261,-261,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,131,-73,-73,-73,-73,-73,-73,116,115,117,118,119,120,121,122,123,124,125,126,127,128,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,652,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,132,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,129,130,131,103,104,-76,-76,-76,-76,116,115,117,118,119,120,121,122,123,124,125,126,127,128,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,653,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,132,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,129,130,131,103,104,-79,-79,-79,-79,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,132,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,129,130,131,103,104,-82,-82,-82,-82,116,115,117,118,119,120,121,122,123,124,125,126,127,128,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,654,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,132,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,129,130,131,103,104,-86,-86,-86,-86,116,115,117,118,119,120,121,122,123,124,125,126,127,128,113,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,3,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,656,4,5,6,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,160,109,110,655,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,6,6,64,1,5,63,2,-219,-219,-219,-219,-219,-219,11,59,1,25,1,2,12,13,2,1,29,1,152,111,154,155,153,106,157,156,151,657,150,18,6,53,1,10,1,5,9,1,2,12,13,2,1,22,1,2,4,1,-217,152,111,-217,-217,-217,154,155,153,106,157,156,151,658,-217,-217,149,150,26,6,64,1,5,27,36,2,25,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,132,-223,-223,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,58,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,3,1,4,2,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,3,142,1,1,659,96,97,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,660,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,131,-460,-460,-460,-460,-460,-460,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,70,10,160,661,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,2,70,10,160,662,2,70,10,160,663,2,70,10,160,664,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,24,70,10,23,4,59,1,9,1,1,4,33,1,5,1,1,1,1,1,1,1,1,1,1,1,160,665,132,666,129,130,131,103,104,667,116,115,117,118,119,120,121,122,123,124,125,126,127,128,23,70,10,23,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,668,132,669,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,23,70,10,23,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,670,132,671,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,23,70,10,23,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,672,132,673,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,674,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,675,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,676,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,4,105,76,2,2,-351,-351,-351,-351,25,76,27,2,61,1,9,1,1,3,2,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-349,132,-349,129,130,131,103,104,-349,-349,-349,116,115,117,118,119,120,121,122,123,124,125,126,127,128,4,71,92,11,1,677,678,540,387,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,2,70,10,160,679,3,71,92,12,-300,-300,-300,3,70,6,4,160,681,680,22,70,6,27,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-247,-247,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,45,1,5,63,1,1,5,4,12,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,160,-360,-360,682,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,131,-360,-360,-360,-360,-360,-360,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,115,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,2,1,1,1,1,8,4,1,1,1,1,1,3,1,-368,393,394,395,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-368,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,683,396,397,66,74,75,47,48,72,49,50,51,53,54,22,6,65,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-372,-372,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,2,6,65,-373,-373,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,393,394,395,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,45,46,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,684,392,396,397,66,74,75,47,48,72,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,359,360,-261,-261,-261,-261,685,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,1,159,686,6,59,1,10,132,1,2,413,111,412,687,411,414,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,3,58,5,1,688,112,113,3,6,64,36,690,691,689,12,6,53,1,10,1,26,9,8,9,16,64,2,-262,413,111,-262,-262,-262,-262,-262,-262,-262,692,414,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,560,693,-261,-261,-261,-261,-261,2,59,1,694,111,2,59,1,695,111,1,159,-393,3,58,5,1,696,112,113,3,6,64,36,698,699,697,12,6,53,1,10,1,26,9,8,9,16,66,5,-262,569,111,-262,-262,-262,-262,-262,-262,-262,421,700,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,567,701,-261,-261,-261,-261,-261,6,6,64,1,5,30,98,-417,-417,-417,-417,-417,570,3,59,1,145,702,111,703,2,59,1,704,111,29,1,5,63,1,1,5,27,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,132,-400,-400,-400,-400,-400,131,-400,-400,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,705,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,706,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,71,707,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,1,155,708,21,103,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,132,709,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,119,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,7,1,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,246,109,110,247,56,55,76,77,100,99,106,62,88,92,251,89,90,95,439,710,245,248,244,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,5,6,64,1,5,38,-190,-190,-190,-190,-190,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,7,1,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-197,-197,109,110,247,56,55,76,77,100,99,106,62,88,-197,92,251,89,90,95,433,432,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,117,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,7,1,1,1,1,1,12,3,10,2,1,2,2,1,7,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,247,56,55,76,77,100,99,106,62,88,92,251,89,90,95,439,711,248,244,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,2,70,1,580,712,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,713,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,29,40,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,12,1,2,12,13,2,1,8,1,29,276,267,268,271,270,269,272,273,277,107,108,264,111,265,257,112,113,109,110,274,275,266,106,157,156,263,714,262,87,35,6,34,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,9,1,2,12,13,2,1,6,1,1,1,29,-154,276,267,268,271,270,269,272,273,277,107,108,264,111,265,257,112,113,-154,-154,109,110,-154,274,275,266,106,157,156,263,715,-154,261,262,87,5,6,64,1,5,47,-156,-156,-156,-156,-156,25,6,64,1,5,27,20,43,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,132,-159,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,716,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,109,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,10,1,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,717,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,-206,109,110,56,55,76,77,100,99,-206,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,24,71,32,13,18,1,31,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,718,132,430,594,429,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,1,71,719,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,22,71,21,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-207,-207,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,720,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,6,64,27,722,723,721,14,6,53,1,1,1,8,1,26,9,8,9,3,1,12,-262,462,111,463,257,-262,-262,-262,-262,-262,-262,724,461,-262,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,725,-261,-261,-261,-261,-261,5,59,1,1,1,65,462,111,463,257,726,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,727,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,6,64,27,722,723,728,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,729,-261,-261,-261,-261,-261,21,92,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,730,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,731,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,3,70,10,81,160,733,732,2,70,10,160,734,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,131,-304,-304,-304,-304,-304,-304,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,131,-306,-306,-306,-306,-306,-306,116,115,117,118,119,120,121,122,123,124,125,126,127,128,25,6,64,1,5,27,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,735,-123,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,736,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,17,48,9,1,1,1,1,1,1,1,24,13,9,1,1,1,2,1,295,107,108,297,111,298,257,112,113,299,621,737,300,292,293,294,301,23,6,42,9,1,1,1,1,1,1,1,6,1,5,12,13,5,3,1,1,1,1,2,1,-116,295,107,108,297,111,298,257,112,113,-116,-116,-116,299,621,-116,738,296,300,292,293,294,301,5,6,64,1,5,30,-118,-118,-118,-118,-118,6,6,64,1,5,26,4,-121,-121,-121,-121,739,-121,25,6,64,1,5,27,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,132,-125,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,740,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,6,6,64,1,5,26,4,-131,-131,-131,-131,-131,-131,21,103,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,132,741,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,11,6,64,1,5,13,1,1,3,4,8,31,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,11,6,64,1,5,13,1,1,3,4,8,31,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,2,61,1,742,257,2,61,1,743,257,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,744,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,745,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,8,59,1,1,1,8,25,31,1,462,111,463,257,747,746,460,461,8,59,1,1,1,8,25,31,1,462,111,463,257,749,748,460,461,11,6,64,1,5,13,1,1,3,4,8,31,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,11,6,64,1,5,13,1,1,3,4,8,31,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,4,63,1,2,2,-64,-64,-64,-64,2,6,65,114,750,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,-457,-457,-457,-457,-457,-457,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,751,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,132,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,131,103,104,-284,-284,-284,-284,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,752,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,131,-331,-331,-331,753,-331,-331,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,754,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,131,-336,-336,-336,-336,-336,-336,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,755,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,131,-340,-340,-340,-340,-340,-340,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,756,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,131,-344,-344,-344,-344,-344,-344,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,757,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,758,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,131,-347,-347,-347,-347,-347,-347,116,115,117,118,119,120,121,122,123,124,125,126,127,128,56,1,5,57,1,5,1,1,3,2,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,251,89,90,95,759,69,45,46,96,97,250,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,249,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,340,109,110,56,55,76,77,100,99,106,62,88,92,251,89,90,95,339,69,45,46,96,97,250,760,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,47,48,72,49,50,51,53,54,5,6,64,1,5,63,-239,-239,-239,-239,-239,3,6,64,1,648,649,761,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,9,1,5,63,1,1,5,38,25,16,-213,-213,-213,-213,-213,-213,-213,-213,-213,6,6,64,1,5,63,2,-220,-220,-220,-220,-220,-220,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,359,762,-261,-261,-261,-261,-261,2,70,10,160,655,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,763,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,764,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,765,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,766,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,767,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,23,70,10,23,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,768,132,769,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,23,70,10,23,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,770,132,771,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,2,70,10,160,772,1,71,773,4,6,65,92,12,774,-301,-301,-301,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,775,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,2,6,65,-367,-367,2,6,65,546,776,2,70,10,160,777,3,58,5,1,778,112,113,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,560,779,-261,-261,-261,-261,-261,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,1,159,780,4,59,1,143,2,413,111,781,414,6,59,1,10,132,1,2,413,111,412,782,411,414,5,6,64,1,5,30,-384,-384,-384,-384,-384,3,6,64,1,690,691,783,5,6,64,1,5,30,-389,-389,-389,-389,-389,5,6,64,1,5,30,-391,-391,-391,-391,-391,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,14,1,5,63,1,1,5,38,25,16,4,7,1,10,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,784,-395,-395,-395,-395,4,59,1,145,5,569,111,421,785,6,59,1,10,135,3,2,569,111,419,421,786,418,5,6,64,1,5,30,-413,-413,-413,-413,-413,3,6,64,1,698,699,787,5,6,64,1,5,30,-418,-418,-418,-418,-418,5,6,64,1,5,30,-419,-419,-419,-419,-419,5,6,64,1,5,30,-421,-421,-421,-421,-421,29,1,5,63,1,1,5,27,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,132,-401,-401,-401,-401,-401,131,-401,-401,116,115,117,118,119,120,121,122,123,124,125,126,127,128,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,788,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,11,6,64,1,5,20,1,9,8,9,7,9,-261,-261,-261,435,436,-261,-261,-261,-261,789,-261,5,6,64,1,5,38,-191,-191,-191,-191,-191,5,6,64,1,5,38,-192,-192,-192,-192,-192,1,92,790,5,6,64,1,5,47,-157,-157,-157,-157,-157,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,447,791,-261,-261,-261,-261,-261,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,792,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,71,21,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-205,-205,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,1,92,793,1,92,794,21,92,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-70,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,6,59,1,1,1,64,1,462,111,463,257,795,461,7,59,1,1,1,33,31,1,462,111,463,257,796,460,461,5,6,64,1,5,21,-163,-163,-163,-163,-163,3,6,64,1,722,723,797,6,6,64,1,5,1,20,-167,-167,-167,-167,798,-167,25,6,64,1,5,21,6,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,3,6,64,1,722,723,799,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,800,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,801,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,14,41,18,1,25,1,2,12,4,4,5,2,31,38,2,333,152,111,154,155,153,106,802,803,88,156,194,332,193,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,804,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,5,6,64,1,5,30,-119,-119,-119,-119,-119,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,474,805,-261,-261,-261,-261,-261,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,806,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,616,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,807,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,6,6,64,1,5,26,4,-132,-132,-132,-132,-132,-132,11,6,64,1,5,13,1,1,3,4,8,31,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,11,6,64,1,5,13,1,1,3,4,8,31,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,21,92,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,808,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,809,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,810,-261,-261,-261,-261,-261,7,59,1,1,1,33,31,1,462,111,463,257,811,460,461,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,812,-261,-261,-261,-261,-261,7,59,1,1,1,33,31,1,462,111,463,257,813,460,461,1,69,814,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,815,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,816,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,817,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,818,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,819,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,820,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,821,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,131,-338,-338,-338,-338,-338,-338,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,822,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,131,-342,-342,-342,-342,-342,-342,116,115,117,118,119,120,121,122,123,124,125,126,127,128,5,6,64,1,5,63,-240,-240,-240,-240,-240,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,502,823,-261,-261,-261,-261,-261,5,6,64,1,5,63,-241,-241,-241,-241,-241,3,6,64,1,514,515,824,23,70,10,23,63,1,9,1,1,4,33,1,5,1,1,1,1,1,1,1,1,1,1,1,160,825,132,129,130,131,103,104,826,116,115,117,118,119,120,121,122,123,124,125,126,127,128,23,70,10,23,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,827,132,828,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,829,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,830,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,831,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,832,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,833,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,71,834,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,3,71,92,12,-302,-302,-302,22,70,6,27,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-248,-248,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,3,6,64,36,690,691,835,3,58,5,1,836,112,113,5,6,64,1,5,30,-385,-385,-385,-385,-385,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,560,837,-261,-261,-261,-261,-261,5,6,64,1,5,30,-386,-386,-386,-386,-386,3,58,5,1,838,112,113,5,6,64,1,5,30,-414,-414,-414,-414,-414,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,567,839,-261,-261,-261,-261,-261,5,6,64,1,5,30,-415,-415,-415,-415,-415,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,2,70,1,580,840,55,1,5,57,1,5,1,1,5,13,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,3,6,64,1,588,589,841,5,6,64,1,5,47,-160,-160,-160,-160,-160,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,5,6,64,1,5,21,-164,-164,-164,-164,-164,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,842,-261,-261,-261,-261,-261,1,97,843,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,844,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,97,845,1,92,846,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,847,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,4,105,76,2,2,848,494,496,497,11,59,1,25,1,2,12,4,9,2,31,40,152,111,154,155,153,106,849,157,156,194,193,5,6,64,1,5,30,-124,-124,-124,-124,-124,3,6,64,1,618,619,850,25,6,64,1,5,27,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,132,-123,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,5,6,64,1,5,30,-126,-126,-126,-126,-126,11,6,64,1,5,13,1,1,3,4,8,31,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,21,71,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,851,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,3,6,64,27,722,723,852,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,853,-261,-261,-261,-261,-261,3,6,64,27,722,723,854,10,6,64,1,5,20,1,9,8,9,16,-261,-261,-261,602,855,-261,-261,-261,-261,-261,4,63,1,2,2,-65,-65,-65,-65,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,131,-332,-332,-332,856,-332,-332,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,857,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,131,-333,-333,-333,-333,-333,-333,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,131,-337,-337,-337,-337,-337,-337,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,131,-341,-341,-341,-341,-341,-341,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,131,-345,-345,-345,-345,-345,-345,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,858,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,859,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,3,6,64,1,648,649,860,6,6,64,1,5,63,2,-221,-221,-221,-221,-221,-221,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,861,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,862,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,863,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,864,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,1,159,865,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,3,6,64,1,690,691,866,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,3,6,64,1,698,699,867,5,6,64,1,5,38,-193,-193,-193,-193,-193,5,6,64,1,5,47,-158,-158,-158,-158,-158,3,6,64,1,722,723,868,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,25,6,64,1,5,21,6,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,64,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,7,1,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,869,611,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,870,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,105,871,5,6,64,1,5,30,-120,-120,-120,-120,-120,1,92,872,11,6,64,1,5,13,1,1,3,4,8,31,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,3,6,64,1,722,723,873,11,6,64,1,5,13,1,1,3,4,8,31,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,3,6,64,1,722,723,874,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,875,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,876,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,131,-339,-339,-339,-339,-339,-339,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,131,-343,-343,-343,-343,-343,-343,116,115,117,118,119,120,121,122,123,124,125,126,127,128,5,6,64,1,5,63,-242,-242,-242,-242,-242,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,877,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,22,70,10,23,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,160,878,132,129,130,131,103,104,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,58,5,1,879,112,113,5,6,64,1,5,30,-387,-387,-387,-387,-387,5,6,64,1,5,30,-416,-416,-416,-416,-416,5,6,64,1,5,21,-165,-165,-165,-165,-165,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,45,1,5,63,1,1,5,16,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,882,-336,880,-336,-336,-336,-336,-336,881,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,131,-336,-336,-336,-336,-336,-336,116,115,117,118,119,120,121,122,123,124,125,126,127,128,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,883,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,11,6,64,1,5,13,1,1,3,4,8,31,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,1,97,884,1,97,885,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,131,-334,-334,-334,-334,-334,-334,116,115,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,131,-335,-335,-335,-335,-335,-335,116,115,117,118,119,120,121,122,123,124,125,126,127,128,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,43,1,5,63,1,1,5,16,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,13,1,5,63,1,1,5,38,25,16,11,1,10,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,1,106,886,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,887,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,8,6,64,1,26,9,8,9,16,-262,-262,-262,-262,-262,-262,-262,-262,45,1,5,63,1,1,5,16,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,882,-338,888,-338,-338,-338,-338,-338,889,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,131,-338,-338,-338,-338,-338,-338,116,115,117,118,119,120,121,122,123,124,125,126,127,128,11,6,64,1,5,13,1,1,3,4,8,31,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,11,6,64,1,5,13,1,1,3,4,8,31,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,45,1,5,63,1,1,5,16,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,882,-337,890,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,131,-337,-337,-337,-337,-337,-337,116,115,117,118,119,120,121,122,123,124,125,126,127,128,1,106,891,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,892,163,31,32,33,34,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,42,43,44,78,79,80,81,82,83,84,85,86,107,108,98,111,112,113,109,110,56,55,76,77,100,99,106,62,88,92,89,90,95,69,167,168,96,97,91,93,94,87,73,67,68,57,101,58,102,59,63,60,103,104,61,105,52,64,70,71,65,66,74,75,169,170,171,49,50,51,53,54,1,106,893,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,45,1,5,63,1,1,5,16,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,882,-339,894,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,131,-339,-339,-339,-339,-339,-339,116,115,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,1,106,895,61,1,5,57,1,5,1,1,5,1,1,1,2,1,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114],u=[],t=0,l,n,i,a;while(t<e.length){l=e[t++],n={},i=0,a=[];while(l--)i+=e[t++],a.push(i);for(i of a)n[i]=e[t++];u.push(n)}return u})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,48,1,48,1,59,1,61,1,58,1,58,3,65,1,65,2,67,3,67,5,67,2,67,1,50,1,50,3,75,3,75,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,22,3,21,3,21,4,21,3,21,2,21,3,21,2,38,1,38,1,38,1,87,1,87,1,84,1,84,1,84,3,84,3,84,4,84,6,84,4,84,6,84,5,84,5,84,7,84,7,84,4,84,5,84,7,86,10,86,12,86,11,86,13,86,4,109,0,109,1,109,3,109,4,109,6,110,1,110,1,110,3,110,5,110,3,110,5,112,1,112,1,112,1,101,1,101,3,101,4,101,1,111,2,111,2,117,1,117,1,117,1,117,1,117,1,117,2,117,2,117,2,117,2,117,3,117,3,117,4,117,6,117,5,117,5,117,7,117,7,47,4,122,0,122,1,122,3,122,4,122,6,124,3,124,5,124,2,95,1,95,3,95,4,95,6,126,1,126,3,126,3,126,5,127,1,127,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,85,2,85,3,85,4,129,1,129,3,129,4,129,4,129,6,131,1,131,2,130,1,130,2,128,1,128,2,133,1,133,2,134,1,134,1,41,5,93,3,93,2,93,2,93,1,33,6,33,3,15,5,15,2,36,5,36,2,142,1,142,1,138,0,138,1,138,3,138,4,138,6,145,1,145,3,145,2,145,1,146,1,146,1,146,1,146,1,147,2,42,2,42,2,42,3,42,2,42,2,119,2,119,4,149,1,149,3,149,4,149,4,149,6,132,1,132,1,132,1,132,1,150,1,150,3,44,1,44,1,88,2,45,3,45,4,45,6,46,3,46,3,80,2,80,3,40,3,40,5,96,0,96,1,10,2,10,4,10,1,31,2,31,4,32,1,32,2,32,4,32,3,160,3,160,4,162,4,162,5,162,2,164,3,164,5,23,1,23,1,23,3,23,3,23,7,23,5,23,3,23,3,24,2,24,3,24,4,24,5,169,3,169,3,169,3,169,2,27,5,27,7,27,4,27,6,173,1,173,2,174,3,174,4,176,2,176,4,176,2,176,4,25,2,25,2,25,2,25,1,179,2,179,2,179,3,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,26,5,26,7,26,7,26,9,26,9,26,5,26,7,26,6,26,8,26,5,26,7,26,6,26,8,26,5,26,7,26,3,26,5,186,1,186,3,104,1,104,3,187,1,187,1,28,1,28,2,28,3,28,4,28,2,28,3,28,4,28,5,34,3,35,2,29,4,29,6,194,1,194,3,194,2,195,1,195,1,195,1,195,2,195,2,30,2,30,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,202,1,202,3,202,4,202,4,202,6,203,1,203,3,203,1,203,3,200,1,201,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,208,1,208,3,208,4,208,4,208,6,210,1,210,3,210,3,210,1,210,3,37,2,37,2,37,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,43,2],ruleActions:(e,u,t,l)=>{let n=u,i=u.length-1;switch(e){case 1:return["program"];case 2:return["program",...n[i]];case 3:case 62:case 117:case 155:case 162:case 194:case 198:case 218:case 238:case 247:case 299:case 350:case 366:case 383:case 412:return[n[i]];case 4:case 118:case 156:case 163:case 219:case 239:case 248:case 367:case 384:case 413:return[...n[i-2],n[i]];case 5:case 64:case 201:case 368:return n[i-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 52:case 53:case 54:case 56:case 57:case 58:case 59:case 60:case 67:case 68:case 91:case 92:case 93:case 94:case 95:case 96:case 97:case 122:case 127:case 128:case 129:case 130:case 133:case 136:case 137:case 138:case 139:case 140:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 180:case 181:case 182:case 183:case 184:case 189:case 215:case 216:case 222:case 226:case 227:case 228:case 229:case 243:case 244:case 245:case 261:case 262:case 276:case 279:case 280:case 310:case 348:case 352:case 353:case 369:case 370:case 371:case 388:case 390:case 392:case 417:case 420:return n[i];case 50:case 179:return"undefined";case 51:case 178:return"null";case 55:case 185:return["symbol",n[i]];case 61:return["str",...n[i-1]];case 63:case 195:case 199:case 300:return[...n[i-1],n[i]];case 65:case 237:case 241:case 386:case 415:return n[i-2];case 66:return"";case 69:return["regex",n[i-1]];case 70:return["regex-index",n[i-2],n[i]];case 71:return["regex-index",n[i],null];case 72:case 125:return["=",n[i-2],n[i]];case 73:return["=",n[i-3],n[i]];case 74:case 126:return["=",n[i-4],n[i-1]];case 75:return["state",n[i-2],n[i]];case 76:return["state",n[i-3],n[i]];case 77:return["state",n[i-4],n[i-1]];case 78:case 80:return["computed",n[i-2],n[i]];case 79:return["computed",n[i-3],n[i]];case 81:return["readonly",n[i-2],n[i]];case 82:return["readonly",n[i-3],n[i]];case 83:return["readonly",n[i-4],n[i-1]];case 84:return["gate",n[i-2],n[i]];case 85:case 87:return["effect",n[i-2],n[i]];case 86:return["effect",n[i-3],n[i]];case 88:case 89:case 90:return["effect",null,n[i]];case 98:case 145:return[".",n[i-2],n[i]];case 99:case 146:return["?.",n[i-2],n[i]];case 100:case 102:case 147:return["[]",n[i-3],n[i-1]];case 101:case 103:case 148:return["[]",n[i-5],n[i-2]];case 104:case 149:return[".{}",n[i-4],...n[i-2]];case 105:case 150:return["?.{}",n[i-4],...n[i-2]];case 106:case 151:return[".{}",n[i-6],...n[i-3]];case 107:case 152:return["?.{}",n[i-6],...n[i-3]];case 108:return[n[i-1][0],n[i-3],...n[i-1].slice(1)];case 109:return["optindex",n[i-4],n[i-1]];case 110:return["optindex",n[i-6],n[i-2]];case 111:return["object-comprehension",n[i-8],n[i-6],[["for-of",n[i-4],n[i-2],!1]],[]];case 112:return["object-comprehension",n[i-10],n[i-8],[["for-of",n[i-6],n[i-4],!1]],[n[i-2]]];case 113:return["object-comprehension",n[i-9],n[i-7],[["for-of",n[i-4],n[i-2],!0]],[]];case 114:return["object-comprehension",n[i-11],n[i-9],[["for-of",n[i-6],n[i-4],!0]],[n[i-2]]];case 115:return["object",...n[i-2]];case 116:case 154:case 196:case 217:case 236:return[];case 119:case 157:case 164:case 220:case 240:case 385:case 414:return[...n[i-3],n[i]];case 120:case 158:case 165:case 221:case 242:case 387:case 416:return[...n[i-5],...n[i-2]];case 121:return[null,n[i],n[i]];case 123:case 159:return[":",n[i-2],n[i]];case 124:case 160:return[":",n[i-4],n[i-1]];case 131:return["dynamicKey",n[i-1]];case 132:return["[]","this",n[i-1]];case 134:case 135:case 161:case 230:return["...",n[i]];case 141:case 234:return["super",...n[i]];case 142:case 143:case 144:case 232:case 235:return[n[i-1],...n[i]];case 153:return["map-literal",...n[i-2]];case 166:return[n[i],n[i],null];case 167:return[n[i-2],n[i],null];case 168:return[n[i-2],n[i-2],n[i]];case 169:return[n[i-4],n[i-2],n[i]];case 186:return["array"];case 187:return["array",...n[i-1]];case 188:return["array",...n[i-2],...n[i-1]];case 190:return[...n[i-2],...n[i]];case 191:return[...n[i-3],...n[i]];case 192:return[...n[i-2],...n[i-1]];case 193:return[...n[i-5],...n[i-4],...n[i-2],...n[i-1]];case 197:return[...n[i]];case 200:return null;case 202:return"..";case 203:case 246:return"...";case 204:return[n[i-2],n[i-3],n[i-1]];case 205:case 440:case 442:case 443:case 456:case 458:return[n[i-1],n[i-2],n[i]];case 206:return[n[i],n[i-1],null];case 207:return[n[i-1],null,n[i]];case 208:return[n[i],null,null];case 209:return["def",n[i-4],n[i-2],n[i]];case 210:return["def",n[i-1],[],n[i]];case 211:case 213:return[n[i-1],n[i-3],n[i]];case 212:case 214:return[n[i-1],[],n[i]];case 223:case 349:return["default",n[i-2],n[i]];case 224:return["rest",n[i]];case 225:return["expansion"];case 231:return["tagged-template",n[i-1],n[i]];case 233:return["optcall",n[i-2],...n[i]];case 249:case 250:return"this";case 251:return[".","this",n[i]];case 252:return[".","super",n[i]];case 253:return["[]","super",n[i-1]];case 254:return["[]","super",n[i-2]];case 255:return[".","new",n[i]];case 256:return[".","import",n[i]];case 257:return["block"];case 258:return["block",...n[i-1]];case 259:return n[i-1].length===1?(Array.isArray(n[i-1][0])&&(n[i-1][0].parenthesized=!0),n[i-1][0]):["block",...n[i-1]];case 260:return n[i-2].length===1?(Array.isArray(n[i-2][0])&&(n[i-2][0].parenthesized=!0),n[i-2][0]):["block",...n[i-2]];case 263:return["return",n[i]];case 264:return["return",n[i-1]];case 265:return["return"];case 266:return["throw",n[i]];case 267:return["throw",n[i-1]];case 268:return["yield"];case 269:return["yield",n[i]];case 270:return["yield",n[i-1]];case 271:return["yield-from",n[i]];case 272:case 274:return["if",n[i-1],n[i]];case 273:case 275:return["if",n[i-2],n[i-1],n[i]];case 277:return["if",["!",n[i-1]],n[i]];case 278:return["if",["!",n[i-3]],n[i-2],n[i]];case 281:case 282:return["if",n[i],[n[i-2]]];case 283:return["?:",n[i-4],n[i-6],n[i-1]];case 284:return["?:",n[i-2],n[i-4],n[i]];case 285:case 286:return["if",["!",n[i]],[n[i-2]]];case 287:return["try",n[i]];case 288:return["try",n[i-1],n[i]];case 289:return["try",n[i-2],n[i]];case 290:return["try",n[i-3],n[i-2],n[i]];case 291:case 292:case 293:case 422:case 425:case 427:return[n[i-1],n[i]];case 294:return[null,n[i]];case 295:return["switch",n[i-3],n[i-1],null];case 296:return["switch",n[i-5],n[i-3],n[i-1]];case 297:return["switch",null,n[i-1],null];case 298:return["switch",null,n[i-3],n[i-1]];case 301:return["when",n[i-1],n[i]];case 302:return["when",n[i-2],n[i-1]];case 303:return["while",n[i]];case 304:return["while",n[i-2],n[i]];case 305:return["while",["!",n[i]]];case 306:return["while",["!",n[i-2]],n[i]];case 307:return n[i-1].length===2?[n[i-1][0],n[i-1][1],n[i]]:[n[i-1][0],n[i-1][1],n[i-1][2],n[i]];case 308:case 309:return n[i].length===2?[n[i][0],n[i][1],[n[i-1]]]:[n[i][0],n[i][1],n[i][2],[n[i-1]]];case 311:return["loop",n[i]];case 312:return["loop",[n[i]]];case 313:return["loop-n",n[i-1],n[i]];case 314:return["for-in",n[i-3],n[i-1],null,null,n[i]];case 315:return["for-in",n[i-5],n[i-3],null,n[i-1],n[i]];case 316:return["for-in",n[i-5],n[i-3],n[i-1],null,n[i]];case 317:return["for-in",n[i-7],n[i-5],n[i-1],n[i-3],n[i]];case 318:return["for-in",n[i-7],n[i-5],n[i-3],n[i-1],n[i]];case 319:return["for-of",n[i-3],n[i-1],!1,null,n[i]];case 320:return["for-of",n[i-5],n[i-3],!1,n[i-1],n[i]];case 321:return["for-of",n[i-3],n[i-1],!0,null,n[i]];case 322:return["for-of",n[i-5],n[i-3],!0,n[i-1],n[i]];case 323:return["for-as",n[i-3],n[i-1],!1,null,n[i]];case 324:return["for-as",n[i-5],n[i-3],!1,n[i-1],n[i]];case 325:case 327:return["for-as",n[i-3],n[i-1],!0,null,n[i]];case 326:case 328:return["for-as",n[i-5],n[i-3],!0,n[i-1],n[i]];case 329:return["for-in",[],n[i-1],null,null,n[i]];case 330:return["for-in",[],n[i-3],n[i-1],null,n[i]];case 331:return["comprehension",n[i-4],[["for-in",n[i-2],n[i],null]],[]];case 332:return["comprehension",n[i-6],[["for-in",n[i-4],n[i-2],null]],[n[i]]];case 333:return["comprehension",n[i-6],[["for-in",n[i-4],n[i-2],n[i]]],[]];case 334:return["comprehension",n[i-8],[["for-in",n[i-6],n[i-4],n[i]]],[n[i-2]]];case 335:return["comprehension",n[i-8],[["for-in",n[i-6],n[i-4],n[i-2]]],[n[i]]];case 336:return["comprehension",n[i-4],[["for-of",n[i-2],n[i],!1]],[]];case 337:return["comprehension",n[i-6],[["for-of",n[i-4],n[i-2],!1]],[n[i]]];case 338:return["comprehension",n[i-5],[["for-of",n[i-2],n[i],!0]],[]];case 339:return["comprehension",n[i-7],[["for-of",n[i-4],n[i-2],!0]],[n[i]]];case 340:return["comprehension",n[i-4],[["for-as",n[i-2],n[i],!1,null]],[]];case 341:return["comprehension",n[i-6],[["for-as",n[i-4],n[i-2],!1,null]],[n[i]]];case 342:return["comprehension",n[i-5],[["for-as",n[i-2],n[i],!0,null]],[]];case 343:return["comprehension",n[i-7],[["for-as",n[i-4],n[i-2],!0,null]],[n[i]]];case 344:return["comprehension",n[i-4],[["for-as",n[i-2],n[i],!0,null]],[]];case 345:return["comprehension",n[i-6],[["for-as",n[i-4],n[i-2],!0,null]],[n[i]]];case 346:return["comprehension",n[i-2],[["for-in",[],n[i],null]],[]];case 347:return["comprehension",n[i-4],[["for-in",[],n[i-2],n[i]]],[]];case 351:case 389:case 391:case 418:case 419:case 421:return[n[i-2],n[i]];case 354:return["class",null,null];case 355:return["class",null,null,n[i]];case 356:return["class",null,n[i]];case 357:return["class",null,n[i-1],n[i]];case 358:return["class",n[i],null];case 359:return["class",n[i-1],null,n[i]];case 360:return["class",n[i-2],n[i]];case 361:return["class",n[i-3],n[i-1],n[i]];case 362:return["enum",n[i-1],n[i]];case 363:return["schema",n[i]];case 364:return["component",null,["block",...n[i-1]]];case 365:return["component",n[i-3],["block",...n[i-1]]];case 372:return["offer",n[i]];case 373:return["accept",n[i]];case 374:case 375:return["render",n[i]];case 376:case 379:return["import","{}",n[i]];case 377:case 378:return["import",n[i-2],n[i]];case 380:return["import",n[i-4],n[i]];case 381:return["import",n[i-4],n[i-2],n[i]];case 382:return["import",n[i-7],n[i-4],n[i]];case 393:return["*",n[i]];case 394:return["export","{}"];case 395:return["export",n[i-2]];case 396:case 397:case 398:case 399:case 403:case 404:case 405:case 406:return["export",n[i]];case 400:return["export",["=",n[i-2],n[i]]];case 401:return["export",["=",n[i-3],n[i]]];case 402:return["export",["=",n[i-4],n[i-1]]];case 407:return["export-default",n[i]];case 408:return["export-default",n[i-1]];case 409:return["export-all",n[i]];case 410:return["export-from","{}",n[i]];case 411:return["export-from",n[i-4],n[i]];case 423:case 424:case 426:case 461:return["do-iife",n[i]];case 428:return["-",n[i]];case 429:return["+",n[i]];case 430:return["?",n[i-1]];case 431:return["presence",n[i-1]];case 432:return["await",n[i]];case 433:return["await",n[i-1]];case 434:return["--",n[i],!1];case 435:return["++",n[i],!1];case 436:return["--",n[i-1],!0];case 437:return["++",n[i-1],!0];case 438:return["+",n[i-2],n[i]];case 439:return["-",n[i-2],n[i]];case 441:return["**",n[i-2],n[i]];case 444:return["&",n[i-2],n[i]];case 445:return["^",n[i-2],n[i]];case 446:return["|",n[i-2],n[i]];case 447:case 448:case 449:case 450:case 451:case 452:return["control",n[i-1],n[i-2],n[i]];case 453:return["&&",n[i-2],n[i]];case 454:return["||",n[i-2],n[i]];case 455:return["??",n[i-2],n[i]];case 457:return["?:",n[i-4],n[i-2],n[i]];case 459:return[n[i-3],n[i-4],n[i-1]];case 460:return[n[i-2],n[i-3],n[i]]}},parseError(e,u){let t,l,n,i,a,r,f;if(u.recoverable)return this.trace(e);else throw n=(u.line||0)+1,t=u.loc?.c||0,f=u.token?` (token: ${u.token})`:"",r=u.text?` near '${u.text}'`:"",i=`line ${n}, column ${t}`,a=`Parse error at ${i}${f}${r}: ${e}`,l=Error(a),l.hash=u,l},parse(e){let u,t,l,n,i,a,r,f,s,c,h,o,_,m,y,w,b,D,A,d,R,E,O,U,$,S;[d,S,c]=[[0],[null],[]],[_,$,O,E,w]=[this.parseTable,"",0,0,0],[t,u]=[2,1],f=Object.create(this.lexer),D={ctx:{}};for(let g in this.ctx){if(!Object.hasOwn(this.ctx,g))continue;let q=this.ctx[g];D.ctx[g]=q}if(f.setInput(e,D.ctx),[D.ctx.lexer,D.ctx.parser]=[f,this],f.loc==null)f.loc={};U=f.loc,c.push(U),this.parseError=typeof D.ctx.parseError==="function"?D.ctx.parseError:Object.getPrototypeOf(this).parseError,r=()=>{let g;if(g=f.lex()||u,typeof g!=="number")g=this.symbolIds[g]||g;return g},R=m=A=l=y=o=a=h=i=null,b={};while(!0){if(A=d[d.length-1],R==null)R=r();if(l=_[A]?.[R],l==null){if(n="",!w)i=(()=>{let g=[];for(let q in _[A]){if(!Object.hasOwn(_[A],q))continue;if(this.tokenNames[q]&&q>t)g.push(`'${this.tokenNames[q]}'`)}return g})();throw n=(()=>{if(f.showPosition)return`Parse error on line ${O+1}:
|
|
1860
|
+
${f.showPosition()}
|
|
1861
|
+
Expecting ${i.join(", ")}, got '${this.tokenNames[R]||R}'`;else return`Parse error on line ${O+1}: Unexpected ${R===u?"end of input":`'${this.tokenNames[R]||R}'`}`,this.parseError(n,{text:f.match,token:this.tokenNames[R]||R,line:f.line,loc:U,expected:i})})(),Error(n)}if(l>0)if(d.push(R,l),S.push(f.text),c.push(f.loc),R=null,!m){if([E,$,O,U]=[f.len,f.text,f.line,f.loc],w>0)w--}else[R,m]=[m,null];else if(l<0){if(a=this.ruleTable[-l*2+1],b.$=S[S.length-a],s=c[c.length-(a||1)],b._$={r:s.r,c:s.c},y=this.ruleActions.call(b,-l,S,c,D.ctx),y!=null)b.$=y;if(Array.isArray(b.$))b.$.loc=b._$;if(a)d.length-=a*2,S.length-=a,c.length-=a;d.push(this.ruleTable[-l*2]),S.push(b.$),c.push(b._$),h=_[d[d.length-2]][d[d.length-1]],d.push(h)}else if(l===0)return S[S.length-1]}},trace(){},ctx:{}},w5=(e={})=>{let u=Object.create(_5);return Object.defineProperty(u,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),u},g1=w5();var Q6=g1.parse.bind(g1);var v2=null;function Y3(e){v2=e}var m5=new Set(["input","shape","model","mixin","enum","union"]),G3="input",z3=new Set(["integer","number","boolean","date","datetime"]),y5={id:"integer",int:"integer",whole:"integer",float:"number",money:"number",money_even:"number",cents:"integer",cents_even:"integer",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},A5=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),d5=new Set(["TERMINATOR","INDENT","OUTDENT","=","+=","-=","*=","/=","%=","**=","//=","%%=","?=","??=","&&=","||=","&=","|=","^=","<<=",">>=",">>>=","READONLY_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","THEN","IF","UNLESS","UNARY","!","NOT"]);function S2(e,u){if(e)e.prototype.rewriteSchema=function(){b5(this)},v1._LexerCtor=e;if(u)u.prototype.emitSchema=function(t,l,n){return Q5(this,t,l,n)},u.prototype.getSchemaRuntime=function(){let t=this.options?.schemaMode||"migration";return o0({mode:t})}}var H3=new Set(["defaultMaxString"]);function b5(e){let u=e.tokens,t={defaultMaxString:null},l=0,n=0;while(n<u.length){let i=u[n];if(i[0]==="INDENT")l++;else if(i[0]==="OUTDENT")l--;let a=R5(u,n,t,l);if(a>0){u.splice(n,a);continue}if(D5(u,n))E5(e,u,n,t);n++}}function R5(e,u,t,l){let n=e[u];if(!n||n[0]!=="IDENTIFIER"||n[1]!=="schema")return 0;if(e[u+1]?.[0]!==".")return 0;let i=e[u+2];if(!i||i[0]!=="PROPERTY")return 0;if(e[u+3]?.[0]!=="=")return 0;let a=e[u-1];if(a){let h=a[0];if(h!=="TERMINATOR"&&h!=="INDENT"&&h!=="OUTDENT")return 0}let r=i[1];if(!H3.has(r))throw G(i,`Unknown schema pragma 'schema.${r}'. Known pragmas: ${[...H3].join(", ")}.`);if(l>0)throw G(i,`Schema pragma 'schema.${r}' must be declared at file top level. It was found inside a nested block (function / class / if / loop body), where it would leak into later top-level schemas.`);let f=e[u+4];if(!f||f[0]!=="NUMBER")throw G(f||i,`Pragma 'schema.${r}' requires a number literal. Example: schema.${r} = 100.`);let s=Number(f[1]);if(!Number.isFinite(s)||s<0||!Number.isInteger(s))throw G(f,`Pragma 'schema.${r}' expects a non-negative integer (got ${f[1]}). Use 0 to disable.`);t[r]=s===0?null:s;let c=u+5;if(e[c]?.[0]==="TERMINATOR")c++;return c-u}function D5(e,u){let t=e[u];if(!t||t[0]!=="IDENTIFIER"||t[1]!=="schema")return!1;let l=e[u-1];if(l){let i=l[0];if(i==="."||i==="?.")return!1;if(l[0]==="IDENTIFIER"||l[0]==="PROPERTY"||l[0]===")"||l[0]==="]"||l[0]==="}"||l[0]==="STRING"||l[0]==="NUMBER"){if(!d5.has(i))return!1}}let n=u+1;if(e[n]?.[0]==="SYMBOL"){if(n++,e[n]?.[0]===","&&(e[n+1]?.[0]==="PROPERTY"||e[n+1]?.[0]==="IDENTIFIER")&&e[n+1]?.[1]==="on"){n+=2;while(n<e.length&&e[n][0]!=="TERMINATOR"&&e[n][0]!=="INDENT")n++}}if(e[n]?.[0]==="TERMINATOR"){if(e[n][1]===";")return!0;n++}return e[n]?.[0]==="INDENT"}function E5(e,u,t,l){let n=u[t],i=null,a=G3,r=t+1;if(u[r]?.[0]==="SYMBOL"){i=u[r];let m=i[1];if(!m5.has(m))throw G(i,`Unknown schema kind :${m}. Expected one of :input, :shape, :model, :mixin, :enum, :union.`);a=m,r++}let f=null;if(u[r]?.[0]===","&&(u[r+1]?.[0]==="PROPERTY"||u[r+1]?.[0]==="IDENTIFIER")&&u[r+1]?.[1]==="on"){if(a!=="model")throw G(u[r+1],`'on:' (per-schema adapter) applies to :model only — :${a} never queries a database.`);let m=r+2;if(u[m]?.[0]===":")m++;let y=m;while(m<u.length&&u[m][0]!=="TERMINATOR"&&u[m][0]!=="INDENT")m++;if(f=u.slice(y,m),!f.length)throw G(u[r+1],"'on:' requires an adapter expression — 'schema :model, on: analytics'.");r=m}let s,c;if(u[r]?.[0]==="TERMINATOR"&&u[r][1]===";"){let m=r+1,y=m,w=0,b=u[m]?.loc?.r??null;while(y<u.length){let D=u[y],A=D[0];if(w===0&&b!=null&&D.loc&&D.loc.r>b)break;if(A==="("||A==="["||A==="{"||A==="CALL_START"||A==="INDEX_START"||A==="PARAM_START")w++;else if(A===")"||A==="]"||A==="}"||A==="CALL_END"||A==="INDEX_END"||A==="PARAM_END"){if(w--,w<0)break}else if(w===0&&A==="TERMINATOR"&&D[1]!==";")break;else if(w===0&&(A==="INDENT"||A==="OUTDENT"))break;else if(w===0&&A==="->")throw G(D,"Inline schema body does not support '->' (method/hook/transform). Use the indented form.");else if(w===0&&A==="EFFECT")throw G(D,"Inline schema body does not support '~>' (computed getter). Use the indented form.");else if(w===0&&A==="UNARY_MATH"&&D[1]==="!"&&u[y+1]?.[0]==="COMPARE"&&u[y+1][1]===">")throw G(D,"Inline schema body does not support '!>' (eager derived). Use the indented form.");y++}while(y>m&&u[y-1][0]==="TERMINATOR")y--;if(s=u.slice(m,y),c=y,!s.length)throw G(n,`Inline schema body is empty. Either add '; field; …' entries after 'schema${i?" :"+a:""};' or switch to the indented form.`)}else{if(u[r]?.[0]==="TERMINATOR")r++;if(u[r]?.[0]!=="INDENT")throw G(n,`Expected indented schema body after 'schema${i?" :"+a:""}'.`);let m=r,y=f0(u,m);if(y<0)throw G(u[m],"Unterminated schema body.");s=u.slice(m+1,y),c=y+1}let h=S5(a,s,{schemaLoc:n.loc,kindLoc:i?.loc??null,kind:a,defaultMaxString:l?.defaultMaxString??null});if(f)h.adapterTokens=f;let o=C2("SCHEMA","schema",n),_=C2("SCHEMA_BODY",a,n);_.data={descriptor:h},u.splice(t,c-t,o,_)}function S5(e,u,t){let l=[],n=M5(u);if(e===G3&&!t.kindLoc&&n.length>0&&n[0][0]?.[0]==="SYMBOL")e="enum",t.kind="enum";if(e==="enum")for(let i of n)W5(i,l);else if(e==="union"){for(let r of n)I5(r,l);let i=l.filter((r)=>r.tag==="directive"&&r.name==="on").length,a=l.filter((r)=>r.tag==="union-member");if(i!==1)throw G({loc:t.schemaLoc},i===0?":union requires an '@on :field' discriminator — untagged unions are not supported.":`:union takes exactly one '@on :field' discriminator (got ${i}).`);if(a.length<2)throw G({loc:t.schemaLoc},`:union needs at least two constituent schemas (got ${a.length}).`)}else{for(let i of n)U5(e,i,l,t);if(e==="mixin")for(let i of l){if(i.tag==="method"||i.tag==="computed"||i.tag==="hook")throw G({loc:i.headerLoc||i.loc},`:mixin schemas are fields-only. '${i.name}' is a ${i.tag}; move it to a :shape or :model.`);if(i.tag==="ensure")throw G({loc:i.headerLoc||i.loc},":mixin schemas don't accept @ensure refinements. Move the invariant to a :shape or :model that composes this mixin.");if(i.tag==="scope"||i.tag==="defaultScope")throw G({loc:i.headerLoc||i.loc},`:mixin schemas don't accept query scopes. '@${i.tag==="scope"?"scope":"defaultScope"}' is :model-only.`);if(i.tag==="directive"&&i.name!=="mixin")throw G({loc:i.loc},`:mixin schemas only accept '@mixin Name' directives. '@${i.name}' is not allowed.`)}else if(e==="input")for(let i of l){if(i.tag==="method"||i.tag==="computed"||i.tag==="hook")throw G({loc:i.headerLoc||i.loc},`:input schemas are fields-only. '${i.name}' is a ${i.tag}; use :shape or :model if you need behavior.`);if(i.tag==="scope"||i.tag==="defaultScope")throw G({loc:i.headerLoc||i.loc},`:input schemas don't accept query scopes. '@${i.tag==="scope"?"scope":"defaultScope"}' is :model-only.`);if(i.tag==="directive"&&i.name!=="mixin")throw G({loc:i.loc},`:input schemas only accept '@mixin Name' and '@ensure'. '@${i.name}' is not allowed.`)}else if(e==="shape")for(let i of l){if(i.tag==="hook")throw G({loc:i.headerLoc||i.loc},`:shape schemas don't have lifecycle hooks. '${i.name}' runs only on :model; move it or remove it.`);if(i.tag==="scope"||i.tag==="defaultScope")throw G({loc:i.headerLoc||i.loc},`:shape schemas don't accept query scopes. '@${i.tag==="scope"?"scope":"defaultScope"}' is :model-only.`);if(i.tag==="directive"&&i.name!=="mixin")throw G({loc:i.loc},`:shape schemas only accept '@mixin Name'. '@${i.name}' is :model-only.`)}}return{kind:e,loc:t.schemaLoc,kindLoc:t.kindLoc,entries:l}}function M5(e){let u=[],t=[],l=0;for(let n of e){let i=n[0];if(i==="INDENT")l++;if(i==="OUTDENT")l--;if(i==="TERMINATOR"&&l===0){if(t.length)u.push(t),t=[];continue}t.push(n)}if(t.length)u.push(t);return u}var O5=new Set(["string","email","url","phone","zip"]);function U5(e,u,t,l){let n=u[0];if(!n)return;if(n[0]==="@"){let S=u[1];if(!S||S[0]!=="IDENTIFIER"&&S[0]!=="PROPERTY")throw G(n,"Expected directive name after '@'.");let g=u.slice(2),q=S[1];if(q==="ensure"){let B=S.data?.bang===!0,L=N5(g,n);for(let W of L)t.push({tag:"ensure",name:"ensure",message:W.message,field:W.field||null,async:B,paramTokens:W.paramTokens,bodyTokens:W.bodyTokens,loc:W.loc,headerLoc:n.loc});return}if(q==="scope"){let B=$5(g,n);t.push({tag:"scope",name:B.name,paramTokens:B.paramTokens,bodyTokens:B.bodyTokens,loc:n.loc,headerLoc:n.loc});return}if(q==="defaultScope"){let B=T3(M2(g),n,"@defaultScope");if(B.paramTokens.length)throw G(n,"@defaultScope takes no parameters — write '@defaultScope -> @where(...)'.");t.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:B.bodyTokens,loc:n.loc,headerLoc:n.loc});return}let H=null;if(q==="belongs_to"||q==="has_many"||q==="has_one"||q==="one"||q==="many"||q==="mixin"){let B=g[0];if(B&&(B[0]==="IDENTIFIER"||B[0]==="PROPERTY")){let L=B.data?.optional===!0;if(!L&&g[1]?.[0]==="?")L=!0;H=[{target:B[1],optional:L}]}}t.push({tag:"directive",name:q,args:H,argTokens:g,loc:n.loc});return}if(n[0]==="PROPERTY"){F5(e,n,u,t);return}if(n[0]!=="IDENTIFIER")throw G(n,`Unexpected ${n[0]} at schema top level. Allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), or computed getters ('name: ~> body').`);let i=n[1];if(u[1]?.[0]===":")throw G(u[1],"Schema fields use 'name type' (space, no colon). For methods or computed use 'name: -> body' or 'name: ~> body'.");let a=s0(n),r=1;while(r<u.length){let S=u[r];if(!(u[r-1]&&!u[r-1].spaced))break;if(S[0]==="#")throw G(S,`The '#' unique modifier was removed. Mark uniqueness with '@unique': inline as '${i}! <type> @unique', or as a directive '@unique :${i}' (composite: '@unique [:a, :b]').`);if(S[0]==="?"||S[0]==="!"){a.push(S[0]),r++;continue}break}let f=u[r];if(f?.[0]===":")throw G(f,"Schema fields use 'name type' (space, no colon). Got 'name:'. For methods/computed use 'name: -> body' or 'name: ~> body'.");let s="string",c=null,h=!1,o=null,_=!1;if(f?.[0]==="UNARY_MATH"&&f[1]==="~"){let S=u[r+1];if(S?.[0]==="SYMBOL"){h=!0,o=S[1];let g=y5[o];if(g&&typeof g==="object")s=g.type,_=!0;else s=g||"any";r+=2,f=S}else if(S?.[0]==="IDENTIFIER"){if(!z3.has(S[1]))throw G(S,`'~${S[1]}' is not coercible. Built-in coercion is defined for: ${[...z3].join(", ")}. `+`Named coercers use a symbol — '~:${S[1]}' — and resolve through the registry `+`(@rip-lang/validate's vocabulary, or schema.registerCoercer). For anything else, write an explicit transform: '${i}, -> …'.`);h=!0,s=S[1],r+=2,f=S}else throw G(f,"'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) "+"or a registered coercer symbol ('~:ssn', '~:money', …).")}else if(f?.[0]==="IDENTIFIER")s=f[1],r++;else if(f?.[0]==="STRING"){c=[JSON.parse(f[1])],r++;while(u[r]?.[0]==="|"&&u[r+1]?.[0]==="STRING")r++,c.push(JSON.parse(u[r][1])),r++;if(u[r]?.[0]==="|"){let S=u[r+1],g=S?.[0]??"<end>";throw G(S||u[r],`Literal unions contain string literals only. '${g}' is not allowed as a union member. Use the '?' modifier for nullability.`)}s="literal-union"}let m=!1,y=u[r]?.[0],w=u[r+1]?.[0];if((y==="["||y==="INDEX_START")&&(w==="]"||w==="INDEX_END"))m=!0,r+=2;if(h&&m)throw G(f,`Coercion ('~${s}') does not apply to array types. Coerce per-element with a transform instead.`);if(_)m=!0;let b=u.slice(r);if((f?.[0]==="IDENTIFIER"||f?.[0]==="STRING")&&b[0]?.[0]==="->")throw G(b[0],`Field '${i}' has a transform after the type; a comma is required before '->'. Write '${i} ${s}, -> …'.`);let A=null,d=null,R=null,E=null,O=null,U=!1;if(b.length>0){if(b[0]?.[0]===",")b=b.slice(1);if(b.length>=2&&b[0][0]==="INDENT"){let g=0,q=-1;for(let H=0;H<b.length;H++)if(b[H][0]==="INDENT")g++;else if(b[H][0]==="OUTDENT"){if(g--,g===0){q=H;break}}if(q===b.length-1)b=b.slice(1,-1)}let S=C1(b);for(let g=0;g<S.length;g++){let q=S[g];while(q.length&&(q[0][0]==="INDENT"||q[0][0]==="TERMINATOR"))q=q.slice(1);if(!q.length)continue;if(q[0][0]!=="->"){let B=q5(q);if(B>0)throw G(q[B],`Field '${i}' has a transform after other content; a comma is required before '->'. Write 'name! <constraints>, -> <body>'.`)}let H=q[0];if(H[0]!=="->"){while(q.length&&(q[q.length-1][0]==="OUTDENT"||q[q.length-1][0]==="TERMINATOR"))q=q.slice(0,-1);if(!q.length)continue;H=q[0]}if(H[0]==="["||H[0]==="INDEX_START"){if(A)throw G(H,`Field '${i}' has more than one '[…]' constraint. At most one default / regex bracket per field.`);A=q}else if(H[0]==="{"){if(d)throw G(H,`Field '${i}' has more than one '{…}' attrs bracket.`);d=q}else if(g5(q)){if(R)throw G(H,`Field '${i}' has more than one range constraint. Only one 'min..max' per field.`);R=q}else if(H[0]==="REGEX"&&q.length===1){if(E)throw G(H,`Field '${i}' has more than one regex constraint.`);E=H}else if(H[0]==="->"){if(g!==S.length-1)throw G(H,`Transform '-> …' must be the last element on the field line for '${i}'.`);O=q.slice(1)}else if(H[0]==="@"){let B=q[1],L=B&&(B[0]==="IDENTIFIER"||B[0]==="PROPERTY")?B[1]:null;if(q.length===2&&L==="unique"){if(U)throw G(H,`Field '${i}' has more than one '@unique'.`);U=!0}else throw G(H,`Unknown inline attribute '@${L??""}' on field '${i}'. The only inline attribute is '@unique'.`)}else throw G(H,`Unexpected trailer for field '${i}'. Expected '[…]' default, '{…}' attrs, '/regex/', 'min..max' range, '-> transform', or '@unique'.`)}}if(m&&c)throw G(f,"Array-of-literal-union is not supported. Use 'string[]' if you need an array of strings.");let $=null;if(l?.defaultMaxString!=null&&!E&&!c&&O5.has(s))$=l.defaultMaxString;if(h&&O)throw G(n,`Field '${i}' has both '~${s}' coercion and a '->' transform. `+"A transform replaces coercion — coerce inside it instead.");t.push({tag:"field",name:i,modifiers:a,unique:U,typeName:s,array:m,literals:c,coerce:h,coercer:o,constraintTokens:A,attrsTokens:d,rangeTokens:R,regexToken:E,transformTokens:O,defaultMax:$,loc:n.loc})}function q5(e){let u=0;for(let t=0;t<e.length;t++){let l=e[t][0];if(l==="("||l==="["||l==="{"||l==="CALL_START"||l==="INDEX_START"||l==="PARAM_START")u++;else if(l===")"||l==="]"||l==="}"||l==="CALL_END"||l==="INDEX_END"||l==="PARAM_END")u--;else if(u===0&&l==="->")return t}return-1}function g5(e){let u=0,t=!1;if(e[u]?.[0]==="-"&&e[u+1]?.[0]==="NUMBER")u+=2,t=!0;else if(e[u]?.[0]==="NUMBER")u++,t=!0;if(e[u]?.[0]!=="..")return!1;u++;let l=!1;if(e[u]?.[0]==="-"&&e[u+1]?.[0]==="NUMBER")u+=2,l=!0;else if(e[u]?.[0]==="NUMBER")u++,l=!0;return(t||l)&&u===e.length}function F5(e,u,t,l){let n=u[1],i=t[1];if(!i||i[0]!==":")throw G(u,`Expected ':' after '${n}' before arrow.`);let a=2,r=[],f=!1;if(t[a]&&(t[a][0]==="PARAM_START"||t[a][0]==="(")){f=!0;let b=1;a++;while(a<t.length&&b>0){let D=t[a][0];if(D==="("||D==="PARAM_START")b++;if(D===")"||D==="PARAM_END"){if(b--,b===0){a++;break}}r.push(t[a]),a++}if(b!==0)throw G(t[2],`'${n}': unclosed '(' in parameters.`)}let s=t[a],c=t[a+1],h,o,_;if(s&&s[0]==="->")h="->",o=s.loc,_=a+1;else if(s&&s[0]==="EFFECT")h="~>",o=s.loc,_=a+1;else if(s&&s[0]==="UNARY_MATH"&&s[1]==="!"&&c&&c[0]==="COMPARE"&&c[1]===">"&&!s.spaced)h="!>",o=s.loc,_=a+2;else throw G(i,`Schema top-level '${n}:' must be followed by '->' (method/hook), '~>' (computed getter), or '!>' (eager derived).`);let m=t.slice(_),y=A5.has(n),w;if(h==="~>")w="computed";else if(h==="!>")w="derived";else if(e==="model"&&y)w="hook";else w="method";if(f&&w!=="method")throw G(i,`'${n}': ${w==="hook"?"lifecycle hooks":w==="computed"?"computed getters (~>)":"eager-derived fields (!>)"} take no parameters — only methods do.`);l.push({tag:w,name:n,arrow:h,paramTokens:r,bodyTokens:m,headerLoc:u.loc,arrowLoc:o})}function M2(e){if(e[0]?.[0]==="CALL_START"&&e[e.length-1]?.[0]==="CALL_END")return e.slice(1,-1);return e}function $5(e,u){let t=M2(e);if(!t.length)throw G(u,"@scope requires ':name, -> body' (or ':name, (args) -> body').");let l=t[0];if(l[0]!=="SYMBOL")throw G(l,"@scope name must be a :symbol — '@scope :active, -> @where(active: true)'.");let n=l[1];if(!/^[a-z][a-zA-Z0-9]*$/.test(n))throw G(l,`@scope name ':${n}' must be a lowercase-first alphanumeric identifier.`);let i=t.slice(1);if(i[0]?.[0]===",")i=i.slice(1);if(!i.length)throw G(l,`@scope :${n} is missing its body — '@scope :${n}, -> @where(...)'.`);let a=T3(i,l,`@scope :${n}`);return{name:n,paramTokens:a.paramTokens,bodyTokens:a.bodyTokens}}function T3(e,u,t){if(!e.length)throw G(u,`${t}: expected '-> body' or '(args) -> body'.`);let l=[],n=0,i=e[0];if(i[0]==="("||i[0]==="PARAM_START"){let f=1;n=1;while(n<e.length&&f>0){let s=e[n][0];if(s==="("||s==="PARAM_START")f++;if(s===")"||s==="PARAM_END"){if(f--,f===0){n++;break}}l.push(e[n]),n++}if(f!==0)throw G(i,`${t}: unclosed '(' in parameters.`)}let a=e[n];if(!a||a[0]!=="->")throw G(a||u,`${t}: expected '->' ${l.length?"after parameters":"to start the body"}.`);let r=e.slice(n+1);if(!r.length)throw G(a,`${t}: function body is empty.`);return{paramTokens:l,bodyTokens:r}}function N5(e,u){let t=e;if(!t.length)throw G(u,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");if(t[0]?.[0]==="CALL_START"&&t[t.length-1]?.[0]==="CALL_END")t=t.slice(1,-1);if(!t.length)throw G(u,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");let l=t[0];if(l[0]==="["||l[0]==="INDEX_START"){let i=z5(t,l),a=H5(i);if(a.length===0)throw G(l,"@ensure [...] must contain at least one 'message, fn' pair.");return K3(a,l)}let n=C1(t);if(n.length<2)throw G(l,"@ensure inline form must be 'message, (x) -> body'. Did you forget the comma?");if(n.length>3||n.length===3&&!J3(n[1]))throw G(l,`@ensure inline form takes 'message[, :field], fn' (got ${n.length} comma-separated parts). Use '@ensure [...]' for multiple refinements.`);return K3(n,l)}function J3(e){return e&&e.length===1&&e[0][0]==="SYMBOL"}function K3(e,u){let t=[],l=0;while(l<e.length){let n=e[l++],i=null;if(l<e.length&&J3(e[l]))i=e[l++];if(l>=e.length)throw G(n?.[0]||u,"@ensure: missing function after message"+(i?" and :field":"")+".");t.push(K5(n,i,e[l++],u))}return t}function z5(e,u){let t=0,l=[];for(let n=0;n<e.length;n++){let i=e[n],a=i[0];if(a==="["||a==="INDEX_START"){if(t++,t===1)continue}if(a==="]"||a==="INDEX_END"){if(t--,t===0){if(n<e.length-1)throw G(e[n+1],"@ensure [...] must be the only argument — extra tokens after ']'.");if(l.length>=2&&l[0][0]==="INDENT"&&l[l.length-1][0]==="OUTDENT"){let r=0,f=!1;for(let s=0;s<l.length;s++)if(l[s][0]==="INDENT")r++;else if(l[s][0]==="OUTDENT"){if(r--,r===0&&s===l.length-1){f=!0;break}if(r===0)break}if(f)l=l.slice(1,-1)}return l}}if(t>=1)l.push(i)}throw G(u,"@ensure: unclosed '['.")}function H5(e){let u=[],t=[],l=0;for(let n of e){let i=n[0];if(i==="("||i==="["||i==="{"||i==="CALL_START"||i==="INDEX_START"||i==="PARAM_START"||i==="INDENT")l++;if(i===")"||i==="]"||i==="}"||i==="CALL_END"||i==="INDEX_END"||i==="PARAM_END"||i==="OUTDENT")l--;if(l===0&&(i===","||i==="TERMINATOR")){if(t.length)u.push(t),t=[];continue}t.push(n)}if(t.length)u.push(t);return u}function K5(e,u,t,l){if(!e||!e.length)throw G(l,"@ensure: missing message (expected a string literal).");if(e.length!==1||e[0][0]!=="STRING")throw G(e[0]||l,"@ensure: each refinement's first element must be a string literal message.");let n=e[0],i=JSON.parse(n[1]),a=u?u[0][1]:null;if(!t||!t.length)throw G(n,"@ensure: missing function after message.");let r=t[0];if(r[0]!=="("&&r[0]!=="PARAM_START")throw G(r,"@ensure: expected '(args) -> body' after the message. Predicates must declare their parameter explicitly — '(u) -> ...'.");let f=1,s=1,c=[];while(s<t.length&&f>0){let _=t[s],m=_[0];if(m==="("||m==="PARAM_START")f++;if(m===")"||m==="PARAM_END"){if(f--,f===0){s++;break}}c.push(_),s++}if(f!==0)throw G(r,"@ensure: unclosed '(' in predicate parameters.");let h=t[s];if(!h||h[0]!=="->")throw G(h||t[s-1]||n,"@ensure: expected '->' after predicate parameters.");let o=t.slice(s+1);if(!o.length)throw G(h,"@ensure: predicate function body is empty.");return{message:i,field:a,paramTokens:c,bodyTokens:o,loc:n.loc}}function Z3(e,u){if(!e.length)return[];return C1(e).map((l)=>{let n=l.filter((i)=>i[0]!=="TERMINATOR");if(n.length!==1||n[0][0]!=="IDENTIFIER")throw G(n[0]||u,"@ensure: predicate parameters must be plain identifiers.");return n[0][1]})}function I5(e,u){let t=e[0];if(!t)return;if(t[0]==="@"){let l=e[1];if(!l||l[1]!=="on")throw G(l||t,`:union bodies accept only '@on :field' and constituent schema names. '@${l?.[1]??""}' is not allowed.`);let n=M2(e.slice(2)),i=n[0];if(!i||i[0]!=="SYMBOL")throw G(i||l,"@on requires the discriminator field as a :symbol — '@on :kind'.");if(n.length>1)throw G(n[1],"@on takes exactly one :field symbol.");u.push({tag:"directive",name:"on",args:[{field:i[1]}],argTokens:e.slice(2),loc:t.loc});return}if(t[0]==="IDENTIFIER"&&e.length===1){u.push({tag:"union-member",name:t[1],loc:t.loc});return}throw G(t,`:union bodies accept only '@on :field' and bare constituent schema names (one per line). Got ${t[0]}${e.length>1?" followed by "+e[1][0]:""}.`)}function W5(e,u){let t=e[0];if(!t)return;if(t[0]==="@"){let i=e[1],a=i&&(i[0]==="IDENTIFIER"||i[0]==="PROPERTY")?i[1]:"directive";throw G(t,`:enum schemas don't accept '@${a}'. Enums hold only :symbol members. Move the invariant to a :shape or :model that uses this enum as a field type.`)}if(t[0]!=="SYMBOL")throw G(t,`Enum member must be a :symbol. Use ':${t[1]??"name"}' for a bare member or ':${t[1]??"name"} value' for a valued one.`);let l=t[1],n=e[1];if(!n){u.push({tag:"enum-member",name:l,value:void 0,loc:t.loc});return}if(n[0]===":")throw G(n,`Enum member ':${l}' — drop the ':' before the value. Use ':${l} value'.`);if(e.length>2)throw G(e[2],`Extra tokens after enum member ':${l}' value.`);u.push({tag:"enum-member",name:l,value:c0(n),loc:t.loc})}function Q5(e,u,t,l){let n=t[0],i=L2(n);if(!i)throw Error("schema: missing descriptor on SCHEMA_BODY token");e.usesSchemas=!0;let a=e._schemaName||null,r=[`kind: ${JSON.stringify(i.kind)}`];if(a)r.push(`name: ${JSON.stringify(a)}`);else if(e.options.inlineTypes&&(i.kind==="shape"||i.kind==="input")){let f=e._schemaAnon??=[],s=`__AnonSchema${f.length+1}`;r.push(`__anon: ${JSON.stringify(s)}`),f.push({name:s,descriptor:i})}if(r.push(`entries: [${i.entries.map((f)=>C5(e,f)).join(", ")}]`),i.adapterTokens){let f=v1(i.adapterTokens);if(f)r.push(`adapter: ${e.emit(r0(f),"value")}`)}return`__schema({${r.join(", ")}})`}function L2(e){if(e&&typeof e==="object"){if(e.descriptor)return e.descriptor;if(e.data?.descriptor)return e.data.descriptor}return null}function P5(e){if(!Array.isArray(e))return null;if((e[0]?.valueOf?.()??e[0])!=="schema")return null;return L2(e[1])}var Y5=new Set(["pick","omit","partial","required","extend"]);function $1(e){return e&&e.valueOf?e.valueOf():e}function X3(e){return e.entries.some((u)=>u.tag==="directive"&&u.name==="mixin")}function G5(e){return(e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()+"_id").replace(/_([a-z])/g,(t,l)=>l.toUpperCase())}function T5(e){if(X3(e))return null;let u=new Map;for(let a of e.entries)if(a.tag==="field")u.set(a.name,a);if(e.kind!=="model")return u;let t=(a,r,f)=>{if(!u.has(a))u.set(a,{tag:"field",name:a,modifiers:f?["!"]:["?"],typeName:r,array:!1})},l=!1,n=!1,i=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="timestamps")l=!0;else if(a.name==="softDelete")n=!0;else if(a.name==="belongs_to"){let r=a.args&&a.args[0]&&a.args[0].target;if(r)i.push({fk:G5(r),required:a.args[0].optional!==!0})}}if(t("id","integer",!0),l)t("createdAt","datetime",!0),t("updatedAt","datetime",!0);if(n)t("deletedAt","datetime",!1);for(let{fk:a,required:r}of i)t(a,"integer",r);return u}function J5(e){if(X3(e))return null;let u=new Map;for(let t of e.entries)if(t.tag==="field")u.set(t.name,t);return u}function I3(e,u){let t=e.modifiers.filter((n)=>n!==(u==="partial"?"!":"?")),l=u==="partial"?"?":"!";if(!t.includes(l))t=[...t,l];return{...e,modifiers:t}}function Z5(e,u,t){switch(u.method){case"pick":{let l=new Map;for(let n of u.keys){if(!e.has(n))return null;l.set(n,e.get(n))}return l}case"omit":{let l=new Set(u.keys),n=new Map;for(let[i,a]of e)if(!l.has(i))n.set(i,a);return n}case"partial":{let l=new Map;for(let[n,i]of e)l.set(n,I3(i,"partial"));return l}case"required":{let l=new Set(u.keys),n=new Map;for(let[i,a]of e)n.set(i,l.has(i)?I3(a,"required"):a);return n}case"extend":{let l=u.otherDescriptor||t.get(u.otherName);if(!l)return null;let n=J5(l);if(!n)return null;let i=new Map(e);for(let[a,r]of n){if(i.has(a))return null;i.set(a,r)}return i}default:return null}}function X5(e,u,t){let l=T5(e);if(!l)return null;for(let n of u)if(l=Z5(l,n,t),!l)return null;return{kind:"shape",entries:[...l.values()]}}function B5(e){let u=[],t=e;while(!0){if(!Array.isArray(t))return null;let l=t[0];if(!Array.isArray(l))return null;if($1(l[0])!==".")return null;let n=$1(l[2]);if(!Y5.has(n))return null;let i=t.slice(1),a;if(n==="partial"){if(i.length)return null;a={method:n}}else if(n==="extend"){if(i.length!==1)return null;let s=i[0];if(Array.isArray(s)){let c=P5(s);if(!c||c.kind!=="shape"&&c.kind!=="input")return null;a={method:n,otherDescriptor:c}}else{let c=$1(s);if(typeof c!=="string"||!/^[A-Za-z_$][\w$]*$/.test(c))return null;a={method:n,otherName:c}}}else{let s=v5(i);if(!s||!s.length)return null;a={method:n,keys:s}}u.unshift(a);let r=l[1];if(Array.isArray(r)){t=r;continue}let f=$1(r);if(typeof f!=="string")return null;return{base:f,ops:u}}}function v5(e){let u=[];for(let t of e)if(Array.isArray(t)){if($1(t[0])!=="array")return null;for(let l=1;l<t.length;l++){let n=W3(t[l]);if(n==null)return null;u.push(n)}}else{let l=W3(t);if(l==null)return null;u.push(l)}return u}function W3(e){let u=$1(e);if(typeof u!=="string"||u.length<2)return null;let t=u[0];if(t!=='"'&&t!=="'"||u[u.length-1]!==t)return null;let l=u.slice(1,-1);if(/[\\#]/.test(l))return null;return l}function B3(e){if(!Array.isArray(e))return;let u=$1(e[0]),t=u==="program"||u==="block"?e.slice(1):[e],l=new Map;for(let n of t){if(!Array.isArray(n))continue;let i=n;if($1(n[0])==="export"&&Array.isArray(n[1]))i=n[1];if($1(i[0])!=="="||!Array.isArray(i[2]))continue;let a=$1(i[1]);if(typeof a!=="string")continue;if($1(i[2][0])==="schema"){let h=L2(i[2][1]);if(h)l.set(a,h);continue}let r=B5(i[2]);if(!r)continue;let f=l.get(r.base);if(!f)continue;let s=X5(f,r.ops,l);if(!s)continue;let c=new String("shape");c.descriptor=s,c.data={descriptor:s},i[2]=["schema",c],l.set(a,s)}}function C5(e,u){switch(u.tag){case"field":{let t=['tag: "field"',`name: ${JSON.stringify(u.name)}`,`modifiers: ${JSON.stringify(u.modifiers)}`,`typeName: ${JSON.stringify(u.typeName)}`,`array: ${u.array?"true":"false"}`];if(u.unique)t.push("unique: true");if(u.literals)t.push(`literals: ${JSON.stringify(u.literals)}`);if(u.coerce){if(t.push("coerce: true"),u.coercer)t.push(`coercer: ${JSON.stringify(u.coercer)}`)}let l=u.rangeTokens?n0(u.rangeTokens,u):null,n=u.constraintTokens?k5(u.constraintTokens,u):null,i=u.regexToken?e0(u.regexToken):null,a=i0(l,n,i,u);if(a)t.push(`constraints: ${a}`);if(u.attrsTokens){let r=u0(u.attrsTokens,u);if(r)t.push(`attrs: ${r}`)}if(u.transformTokens)t.push(`transform: ${j5(e,u.transformTokens)}`);return`{${t.join(", ")}}`}case"directive":{let t=['tag: "directive"',`name: ${JSON.stringify(u.name)}`],l=l0(u.name,u.argTokens||[]);if(l)t.push(`args: ${l}`);return`{${t.join(", ")}}`}case"ensure":{let t=x5(e,u),l=['tag: "ensure"',`message: ${JSON.stringify(u.message)}`,`fn: ${t}`];if(u.field)l.push(`field: ${JSON.stringify(u.field)}`);if(u.async)l.push("async: true");return`{${l.join(", ")}}`}case"scope":case"defaultScope":{let t=V5(e,u);return`{${[`tag: ${JSON.stringify(u.tag)}`,`name: ${JSON.stringify(u.name)}`,`fn: ${t}`].join(", ")}}`}case"computed":case"method":case"hook":case"derived":{let t=p5(e,u);return`{${[`tag: ${JSON.stringify(u.tag)}`,`name: ${JSON.stringify(u.name)}`,`fn: ${t}`].join(", ")}}`}case"enum-member":{let t=['tag: "enum-member"',`name: ${JSON.stringify(u.name)}`];if(u.value!==void 0)t.push(`value: ${JSON.stringify(u.value)}`);return`{${t.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(u.name)}}`;default:return'{tag: "unknown"}'}}function L5(e,u){if(!u.paramTokens||!u.paramTokens.length)return[];return C1(u.paramTokens).map((l)=>{let n=l.filter((a)=>a[0]!=="TERMINATOR"&&a[0]!=="INDENT"&&a[0]!=="OUTDENT");if(n.length!==1||n[0][0]!=="IDENTIFIER")throw G(n[0]||{loc:u.headerLoc},`'${u.name}': method parameters must be plain identifiers (with optional ':: Type' annotations).`);let i=new String(n[0][1]);if(e.options.inlineTypes)i.type=n[0].data?.type||"any";return i})}function p5(e,u){let t=v1(u.bodyTokens),l=L5(e,u);if(!t)return"(function() {})";let n=[];if(e.options.inlineTypes&&e._schemaName){let f=new String("this");f.type=e._schemaName,n.push(f)}n.push(...l);let i=["->",n,t],a=e.emit(i,"value"),r=u.tag==="computed"||u.tag==="derived"||u.tag==="method";if(e.options.inlineTypes&&e._schemaName&&r){if(!e._schemaBehavior)e._schemaBehavior=new Map;let f=e._schemaBehavior.get(e._schemaName);if(!f)f=[],e._schemaBehavior.set(e._schemaName,f);f.push({field:u.name,tag:u.tag,fnExpr:a})}return a}function j5(e,u){let t=v1(u);if(!t)return"(function() { return undefined; })";let l=new String("it");l.type="any";let n=["->",[l],t];return e.emit(n,"value")}function V5(e,u){let t=v1(u.bodyTokens);if(!t)return"(function() { return this; })";let n=["->",u.paramTokens.length?Z3(u.paramTokens,u):[],t];return e.emit(n,"value")}function x5(e,u){let t=v1(u.bodyTokens);if(!t)return"(function() { return undefined; })";let n=["->",Z3(u.paramTokens,u),t];return e.emit(n,"value")}function k5(e,u){let t=e.slice(1,-1),l=C1(t);if(!l.length)return{c:null};let n=l.map((i)=>p2(i,u));if(n.length===1){let i=n[0];if(i instanceof RegExp)throw G(e[0],`Regex constraints are written bare, not in brackets. Replace '[${i}]' with '${i}'.`);return{c:{default:i}}}if(n.length===2&&typeof n[0]==="number"&&typeof n[1]==="number")throw G(e[0],`Size/value ranges use 'min..max' syntax, not brackets. Replace '[${n[0]}, ${n[1]}]' with '${n[0]}..${n[1]}'.`);if(n.length===3&&n.every((i)=>typeof i==="number"))throw G(e[0],`Range + default is two separate constraints in v2. Replace '[${n[0]}, ${n[1]}, ${n[2]}]' with '${n[0]}..${n[1]}, [${n[2]}]'.`);throw G(e[0],`Constraint bracket takes a single default value in v2. Got ${n.length} elements.`)}function e0(e){let u=e[1],t=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(u);if(!t)throw G(e,`Invalid regex literal ${JSON.stringify(u)}.`);try{return new RegExp(t[1],t[2])}catch(l){throw G(e,`Invalid regex '${u}': ${l.message}`)}}function n0(e,u){let t=0,l=()=>{let r=1;if(e[t]?.[0]==="-")r=-1,t++;let f=e[t++],s=p2([f],u);if(typeof s!=="number")throw G(f,"Range endpoints must be numeric literals.");return r*s},n;if(e[t]?.[0]!=="..")n=l();t++;let i;if(t<e.length)i=l();if(n!==void 0&&i!==void 0&&n>i)throw G(e[0],`Range '${n}..${i}' is reversed. Write the smaller endpoint first.`);let a={};if(n!==void 0)a.min=n;if(i!==void 0)a.max=i;return a}function i0(e,u,t,l){let n=u&&u.c||{},i=e&&e.min===void 0;if(e){if(e.min!==void 0)n.min=e.min;if(e.max!==void 0)n.max=e.max;if(i&&n.min===void 0&&l?.modifiers?.includes("!"))n.min=1}if(t)n.regex=t;if(l?.defaultMax!=null&&n.max===void 0)n.max=l.defaultMax;if(n.min!==void 0&&n.max!==void 0&&n.min>n.max){let a=e&&e.min!==void 0?`range min ${e.min}`:"implicit min=1 from `!`",r=e&&e.max!==void 0?`range max ${e.max}`:`pragma defaultMaxString=${l?.defaultMax}`;throw G({loc:l?.loc},`Field '${l?.name}' would have impossible constraints min=${n.min} > max=${n.max} after sugar is applied (${a} vs ${r}). Write an explicit range or drop the conflicting pragma.`)}if(n.min===void 0&&n.max===void 0&&n.default===void 0&&n.regex===void 0)return null;return t0(n)}var Q3=new Set(["was"]);function u0(e,u){let t=e.slice(1,-1).filter((i)=>i[0]!=="TERMINATOR"&&i[0]!=="INDENT"&&i[0]!=="OUTDENT"),l=C1(t),n=[];for(let i of l){if(!i.length)continue;let a=i[0];if(a[0]!=="PROPERTY"&&a[0]!=="IDENTIFIER")throw G(a,`Field attrs must be '{key: value}' pairs. Got ${a[0]}.`);let r=a[1];if(!Q3.has(r))throw G(a,`Unknown field attr '${r}'. Known attrs: ${[...Q3].join(", ")}.`);let f=1;if(i[f]?.[0]===":")f++;let s=p2(i.slice(f),u);if(r==="was"&&typeof s!=="string")throw G(a,`Field attr 'was' requires a string column name, e.g. {was: "first_name"}.`);n.push(`${r}: ${E2(s)}`)}return n.length?`{${n.join(", ")}}`:null}function t0(e){let u=[];if(e.min!==void 0)u.push(`min: ${E2(e.min)}`);if(e.max!==void 0)u.push(`max: ${E2(e.max)}`);if(e.default!==void 0)u.push(`default: ${E2(e.default)}`);if(e.regex!==void 0)u.push(`regex: ${e.regex.toString()}`);return u.length?`{${u.join(", ")}}`:null}function E2(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);if(typeof e==="number"||typeof e==="boolean")return String(e);if(e instanceof RegExp)return e.toString();return JSON.stringify(e)}function P3(e){let u=(n)=>n&&(n[0]==="IDENTIFIER"||n[0]==="PROPERTY"||n[0]==="SYMBOL"),t=[],l=0;if(u(e[l]))t.push(e[l][1]);else if(e[l]?.[0]==="["||e[l]?.[0]==="INDEX_START"){let n=[],i=1;l++;while(l<e.length&&i>0){let a=e[l];if(a[0]==="["||a[0]==="INDEX_START")i++;if(a[0]==="]"||a[0]==="INDEX_END"){if(i--,i===0){l++;break}}n.push(a),l++}for(let a of C1(n))if(u(a[0]))t.push(a[0][1])}return t}function l0(e,u){if(e==="idStart"&&!u.length)throw G(null,"@idStart requires an integer literal, e.g. @idStart 10001.");if(!u.length)return null;if(e==="belongs_to"||e==="has_many"||e==="has_one"||e==="one"||e==="many"||e==="mixin"){let t=u[0];if(!t||t[0]!=="IDENTIFIER"&&t[0]!=="PROPERTY")throw G(t||u[u.length-1],`@${e} requires a target name.`);let l=t[1],n=t.data?.optional===!0,i=1;if(!n&&u[i]?.[0]==="?")n=!0,i++;let a=[`target: ${JSON.stringify(l)}`];if(n)a.push("optional: true");return`[{${a.join(", ")}}]`}if(e==="unique"){let t=P3(u);if(!t.length)throw G(u[0]||u[u.length-1],"@unique requires a field name or list — '@unique :email' or '@unique [:a, :b]'.");return`[{fields: ${JSON.stringify(t)}}]`}if(e==="index"){let t=P3(u);return`[{fields: ${JSON.stringify(t)}}]`}if(e==="on"){let t=M2(u)[0];if(t&&t[0]==="SYMBOL")return`[{field: ${JSON.stringify(t[1])}}]`;throw G(t||u[u.length-1],"@on requires the discriminator field as a :symbol — '@on :kind'.")}if(e==="tableWas"){if(u[0]?.[0]==="CALL_START"&&u[u.length-1]?.[0]==="CALL_END")u=u.slice(1,-1);let t=u[0];if(t&&t[0]==="STRING")return`[{name: ${t[1]}}]`;if(t&&(t[0]==="IDENTIFIER"||t[0]==="PROPERTY"))return`[{name: ${JSON.stringify(t[1])}}]`;throw G(t||u[u.length-1],"@tableWas requires the previous table name, e.g. @tableWas legacy_users.")}if(e==="idStart"){let t=u[0],l=1,n=t;if(t&&t[0]==="-"&&u[1]&&u[1][0]==="NUMBER")l=-1,n=u[1];if(!n||n[0]!=="NUMBER")throw G(t||u[u.length-1],"@idStart requires an integer literal, e.g. @idStart 10001.");let i=l*Number(n[1]);if(!Number.isInteger(i))throw G(n,"@idStart requires an integer literal; got "+n[1]+".");return"[{value: "+i+"}]"}return null}function p2(e,u){if(!e.length)throw G(null,"Empty constraint value.");let t=e[0],l=t[0];if(e.length===1){if(l==="NUMBER")return Number(t[1]);if(l==="STRING")return JSON.parse(t[1]);if(l==="BOOL")return t[1]==="true";if(l==="NULL")return null;if(l==="UNDEFINED")return;if(l==="REGEX")return a0(t[1]);if(l==="SYMBOL")return t[1]}if(e.length===2&&l==="-"&&e[1][0]==="NUMBER")return-Number(e[1][1]);throw G(t,`Constraint values must be literals (number, string, boolean, null, regex, :symbol). Got ${l}.`)}function a0(e){let u=typeof e==="string"?e:String(e),t=u.match(/^\/(.*)\/([gimsuy]*)$/s);return t?new RegExp(t[1],t[2]):new RegExp(u)}function r0(e){if(Array.isArray(e)){if((e[0]?.valueOf?.()??e[0])==="block"&&e.length===2)return e[1]}return e}function v1(e){if(!e||!e.length)return null;let u=v1._LexerCtor;if(!u)throw Error("schema: parseBodyTokens called before Lexer was wired");let t=Object.create(u.prototype),l=e.slice();if(l.length>=2&&l[0]?.[0]==="INDENT"){let s=0,c=-1;for(let h=0;h<l.length;h++)if(l[h][0]==="INDENT")s++;else if(l[h][0]==="OUTDENT"){if(s--,s===0){c=h;break}}if(c===l.length-1)l=l.slice(1,-1)}if(t.tokens=l,t.seenFor=t.seenImport=t.seenExport=!1,t.ends=[],t.indent=0,t.outdebt=0,t.indents=[],t.tokens[t.tokens.length-1]?.[0]!=="TERMINATOR")t.tokens.push(C2("TERMINATOR",`
|
|
1862
|
+
`,e[e.length-1]));try{t.rewriteTypes?.(),t.tagPostfixConditionals?.(),t.rewriteTaggedTemplates?.(),t.addImplicitBracesAndParens?.(),t.addImplicitCallCommas?.()}catch(s){throw G(e[0],`schema: failed to compile body: ${s.message}`)}let i=t.tokens.filter((s)=>s[0]!=="TYPE_DECL"),a=g1.lexer;g1.lexer={tokens:i,pos:0,setInput(){},lex(){if(this.pos>=this.tokens.length)return 1;let s=this.tokens[this.pos++],c=s[1];if(s.data)c=new String(c),Object.assign(c,s.data);return this.text=c,this.loc=s.loc,this.line=s.loc?.r,s[0]}};let r;try{r=g1.parse("")}finally{g1.lexer=a}if(!Array.isArray(r)||r[0]!=="program")return null;let f=r.slice(1);if(f.length===0)return null;if(f.length===1)return f[0];return["block",...f]}function s0(e){let u=[],t=e.data;if(t?.bang===!0)u.push("!");if(t?.optional===!0)u.push("?");return u}function f0(e,u){let t=0;for(let l=u;l<e.length;l++)if(e[l][0]==="INDENT")t++;else if(e[l][0]==="OUTDENT"){if(t--,t===0)return l}return-1}function C1(e){let u=[],t=[],l=0;for(let n of e){let i=n[0];if(i==="("||i==="["||i==="{"||i==="CALL_START"||i==="INDEX_START"||i==="PARAM_START"||i==="INDENT")l++;if(i===")"||i==="]"||i==="}"||i==="CALL_END"||i==="INDEX_END"||i==="PARAM_END"||i==="OUTDENT")l--;if(i===","&&l===0){if(t.length)u.push(t);t=[];continue}t.push(n)}if(t.length)u.push(t);return u}function c0(e){let u=e[0],t=e[1];if(u==="NUMBER")return Number(t);if(u==="STRING")return JSON.parse(t);if(u==="BOOL")return t==="true";if(u==="NULL")return null;if(u==="UNDEFINED")return;return t}function C2(e,u,t){let l=[e,u];if(l.pre=0,l.data=null,l.loc=t?.loc??{r:0,c:0,n:0},l.spaced=!1,l.newLine=!1,l.generated=!0,t)l.origin=t;return l}function G(e,u){let t=e?.loc||{r:0,c:0},l=Error(u);return l.name="SchemaSyntaxError",l.loc=t,l.line=t.r,l.column=t.c,l.phase="schema",l.code="E_SCHEMA",l}function o0(e={}){if(!v2)throw Error("schema runtime provider not registered. Side-effect-import either './schema/loader-server.js' (CLI / server / tests) or './schema/loader-browser.js' (browser bundle) before calling any compileToJS that emits schemas.");return v2(e)}function v3({mode:e="browser"}={}){let u;switch(e){case"validate":u=B2;break;case"browser":u=B2+`
|
|
1863
|
+
`+N3;break;case"server":case"migration":throw Error("schema runtime mode '"+e+"' is not available in the browser. ORM and DDL features require side-effect-importing loader-server.js.");default:throw Error(`unknown schema runtime mode: ${e}`)}return(F3+u+$3).trimStart()}Y3(v3);var h0=v3({mode:"browser"});if(typeof globalThis<"u"&&!globalThis.__ripSchema)try{(0,eval)(h0)}catch{}function p3(e){let u=e.prototype;u.rewriteTypes=function(){let t=this.tokens,l=this.typeRefNames=new Set,n=(i,a,r)=>{let f=[i,a];if(f.pre=0,f.data=null,f.loc=r?.loc??{r:0,c:0,n:0},f.spaced=!1,f.newLine=!1,f.generated=!0,r)f.origin=r;return f};this.scanTokens((i,a,r)=>{let f=i[0];if(f==="IDENTIFIER"){let s=r[a+1];if(s&&s[0]==="COMPARE"&&s[1]==="<"&&!s.spaced){let c=r[a-1]?.[0]==="DEF",h=L3(r,a+1);if(h){let o=a+1+h.length,_=!c&&r[o]?.[0]==="="&&r[o+1]?.[0]==="COMPONENT";if(c||_){if(!i.data)i.data={};if(i.data.typeParams=P1(h),r.splice(a+1,h.length),c&&r[a+1]?.[0]==="("){r[a+1][0]="CALL_START";let m=1,y=a+2;while(y<r.length&&m>0){if(r[y][0]==="("||r[y][0]==="CALL_START")m++;if(r[y][0]===")"||r[y][0]==="CALL_END")m--;if(m===0)r[y][0]="CALL_END";y++}}}}}}if(f==="TYPE_ANNOTATION"){let s=r[a-1];if(!s)return 1;let c=C3(r,a+1),h=P1(c),o=s,_="type";if(s[0]==="CALL_END"||s[0]===")"){let y=1,w=a-2;while(w>=0&&y>0){let b=r[w][0];if(b==="CALL_END"||b===")")y++;if(b==="CALL_START"||b==="(")y--;w--}if(w>=0)o=r[w];_="returnType"}else if(s[0]==="PARAM_END"){let y=a+1+c.consumed,w=r[y];if(w&&(w[0]==="->"||w[0]==="=>"))o=w;_="returnType"}else if(s[0]==="IDENTIFIER"&&a>=2&&r[a-2]?.[0]==="DEF")_="returnType";if(!o.data)o.data={};o.data[_]=h;for(let y of c)if(y[0]==="IDENTIFIER")l.add(y[1]);let m=1+c.consumed;return r.splice(a,m),0}if(f==="IDENTIFIER"&&i[1]==="type"){let s=r[a-1]?.[0];if(!(!s||s==="TERMINATOR"||s==="INDENT"||s==="EXPORT"))return 1;let h=a+1,o=r[h];if(!o||o[0]!=="IDENTIFIER")return 1;let _=o[1],m=s==="EXPORT",y=m?a-1:a,w=h+1;if(r[w]?.[0]==="COMPARE"&&r[w]?.[1]==="<"&&!r[w].spaced){let E=L3(r,w);if(E){if(!o.data)o.data={};o.data.typeParams=P1(E),r.splice(w,E.length)}}if(r[w]?.[0]!=="=")return 1;let b=(E)=>{let O=n("TYPE_DECL",_,o);if(O.data={name:_,typeText:E,exported:m},o.data?.typeParams)O.data.typeParams=o.data.typeParams;return O},D=w+1,A=r[D],d=(E,O)=>{for(let U=E;U<=O&&U<r.length;U++)if(r[U][0]==="IDENTIFIER")l.add(r[U][1])};if(A&&(A[0]==="TERMINATOR"||A[0]==="INDENT")){let E=_0(r,D);if(E)return d(D,E.endIdx),r.splice(y,E.endIdx-y+1,b(E.typeText)),0}if(A&&A[0]==="INDENT"){let E=V2(r,D);return d(D,E),r.splice(y,E-y+1,b(j2(r,D))),0}let R=C3(r,D);return d(D,D+R.consumed-1),r.splice(y,D+R.consumed-y,b(P1(R))),0}if(f==="INTERFACE"){let s=a>=1&&r[a-1]?.[0]==="EXPORT",c=a+1,h=r[c];if(!h)return 1;let o=h[1],_=null,m=c+1;if(r[m]?.[0]==="EXTENDS")_=r[m+1]?.[1],m=m+2;if(r[m]?.[0]==="INDENT"){let y=j2(r,m),w=V2(r,m);for(let d=m;d<=w&&d<r.length;d++)if(r[d][0]==="IDENTIFIER")l.add(r[d][1]);if(_)l.add(_);let b=n("TYPE_DECL",o,h);b.data={name:o,kind:"interface",extends:_,typeText:y,exported:s};let D=s?a-1:a,A=w-D+1;return r.splice(D,A,b),0}return 1}return 1});for(let i=t.length-1;i>=0;i--){if(t[i][0]!=="DEF")continue;let a=t[i+1];if(!a||a[0]!=="IDENTIFIER")continue;let r=i+2;if(t[r]?.[0]!=="CALL_START")continue;let f=1;r++;while(r<t.length&&f>0){if(t[r][0]==="CALL_START")f++;if(t[r][0]==="CALL_END")f--;r++}let s=r-1,c=t[r];if(c&&c[0]!=="TERMINATOR")continue;let h=a.data?.returnType;if(!h){for(let b=i+2;b<=s;b++)if(t[b].data?.type){h=!0;break}}if(!h)continue;let o=t.slice(i,r+1),_=i>=1&&t[i-1]?.[0]==="EXPORT",m=_?i-1:i,y=r+1-m,w=n("TYPE_DECL",a[1],a);if(w.data={name:a[1],kind:"overload",overloadTokens:o,exported:_},a.data?.typeParams)w.data.typeParams=a.data.typeParams;t.splice(m,y,w)}}}function C3(e,u){let t=[],l=0,n=[],i=u;while(u<e.length){let a=e[u],r=a[0],f=r==="("||r==="["||r==="{"||r==="CALL_START"||r==="PARAM_START"||r==="INDEX_START"||r==="COMPARE"&&a[1]==="<",s=r===")"||r==="]"||r==="}"||r==="CALL_END"||r==="PARAM_END"||r==="INDEX_END"||r==="COMPARE"&&a[1]===">";if(r==="SHIFT"&&a[1]===">>"&&l>=2){if(l-=2,n[n.length-1]==="<")n.pop();if(n[n.length-1]==="<")n.pop();t.push(a),u++;continue}if(f){l++;let c=r==="{"?"{":r==="["||r==="INDEX_START"?"[":r==="COMPARE"&&a[1]==="<"?"<":"(";n.push(c),t.push(a),u++;continue}if(s){if(l>0){l--,n.pop(),t.push(a),u++;continue}break}if(l===0){if(r==="INDENT"&&t.length>0&&t[t.length-1][0]==="=>"){u++;let c=1;while(u<e.length&&c>0)if(e[u][0]==="INDENT")c++,u++;else if(e[u][0]==="OUTDENT")c--,u++;else t.push(e[u]),u++;continue}if(r==="="||r==="REACTIVE_ASSIGN"||r==="COMPUTED_ASSIGN"||r==="READONLY_ASSIGN"||r==="EFFECT"||r==="GATE"||r==="TERMINATOR"||r==="INDENT"||r==="OUTDENT"||r==="->"||r===",")break}if(l>0&&(r==="INDENT"||r==="OUTDENT")){u++;continue}if(l>0&&r==="TERMINATOR"){t.push(["",";"]),u++;continue}if(r==="PROPERTY"&&n[n.length-1]==="{"){let c=t[t.length-1],h=c?.[0],o=c?.[1];if(c&&h!=="{"&&h!==","&&!(h===""&&o===";"))t.push(["",";"])}t.push(a),u++}return t.consumed=u-i,t}function P1(e){if(e.length===0)return"";if(e[0]?.[0]==="=>")e.unshift(["","()"]);{let l=0;for(let n of e){let i=n[0];if(i==="{")l++;else if(i==="}")l--;else if(i==="TYPE_ANNOTATION"&&l>0){let a=n.loc,r=a?` (line ${a.r}, col ${a.c})`:"",f=Error(`Use \`:\` (not \`::\`) inside a structural type literal${r}. \`::\` binds a name to a type; inside \`{ ... }\` in type position, fields use \`:\` (TS-style).`);throw f.loc=a,f}}}let t=e.map((l,n)=>{let i=e[n+1];if(l.data?.optional&&i&&(i[0]==="TYPE_ANNOTATION"||i[0]===":"))return`${l[1]}?`;if(l[0]==="JS")return"`"+l[1]+"`";return l[1]}).join(" ").replace(/\s+/g," ").trim();return t=t.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": ").replace(/ : /g,": "),t}function L3(e,u){if(u>=e.length)return null;let t=e[u];if(t[0]!=="COMPARE"||t[1]!=="<")return null;let l=[t],n=1,i=u+1;while(i<e.length&&n>0){let a=e[i];if(l.push(a),a[0]==="COMPARE"&&a[1]==="<")n++;else if(a[0]==="COMPARE"&&a[1]===">")n--;i++}return n===0?l:null}function j2(e,u){let t=[],l=u+1,n=1;while(l<e.length&&n>0){let i=e[l];if(i[0]==="INDENT"){n++,l++;continue}if(i[0]==="OUTDENT"){if(n--,n===0)break;l++;continue}if(i[0]==="TERMINATOR"){l++;continue}if(n===1&&i[0]==="["){let r=[];l++;while(l<e.length&&e[l][0]!=="]")r.push(e[l]),l++;if(l++,e[l]?.[1]===":"||e[l]?.[0]==="TYPE_ANNOTATION")l++;let f=[];while(l<e.length){let h=e[l];if(h[0]==="TERMINATOR"||h[0]==="OUTDENT")break;f.push(h),l++}let s=P1(r),c=P1(f);t.push(`[${s}]: ${c}`);continue}let a=i[0]==="PROPERTY"||i[0]==="IDENTIFIER"||n===1&&/^[a-zA-Z_$]/.test(i[1])&&e[l+1]?.[0]==="TYPE_ANNOTATION";if(n===1&&a){let r=i[1],f=!1,s=!1;if(l++,r==="readonly"&&e[l]&&(e[l][0]==="PROPERTY"||e[l][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(e[l][1])&&e[l+1]?.[0]==="TYPE_ANNOTATION")){if(s=!0,r=e[l][1],e[l].data?.optional)f=!0;l++}if(i.data?.optional)f=!0;if(e[l]?.[1]==="?"&&!e[l]?.spaced)f=!0,l++;if(e[l]?.[1]===":"||e[l]?.[0]==="TYPE_ANNOTATION")l++;let c=[],h=0;while(l<e.length){let w=e[l];if(w[0]==="IDENTIFIER"&&w[1]==="type"&&e[l+1]?.[0]==="INDENT"){l++;let b=j2(e,l);c.push(["",b]);let D=1;l++;while(l<e.length&&D>0){if(e[l][0]==="INDENT")D++;if(e[l][0]==="OUTDENT")D--;l++}continue}if(w[0]==="INDENT"){h++,l++;continue}if(w[0]==="OUTDENT"){if(h>0){h--,l++;continue}break}if(w[0]==="TERMINATOR"&&h===0)break;c.push(w),l++}let o=P1(c),_=s?"readonly ":"",m=f?"?":"",y=!1;if(!f&&o.startsWith("(")){let w=0;for(let b=0;b<o.length;b++){let D=o[b];if(D==="(")w++;else if(D===")"){if(w--,w===0){let A=o.slice(b+1).trimStart();if(A===""||A.startsWith(":")&&!A.startsWith("::"))y=!0;break}}}}if(y)t.push(`${_}${r}${o}`);else t.push(`${_}${r}${m}: ${o}`)}else l++}return"{ "+t.join("; ")+" }"}function V2(e,u){let t=0;for(let l=u;l<e.length;l++){if(e[l][0]==="INDENT")t++;if(e[l][0]==="OUTDENT"){if(t--,t===0)return l}}return e.length-1}function _0(e,u){let t=u;if(e[t]?.[0]==="TERMINATOR")t++;if(e[t]?.[0]!=="INDENT")return null;let l=t;t++;while(t<e.length&&e[t][0]==="TERMINATOR")t++;if(!e[t]||e[t][1]!=="|")return null;let n=[],i=1;t=l+1;while(t<e.length&&i>0){let r=e[t];if(r[0]==="INDENT"){i++,t++;continue}if(r[0]==="OUTDENT"){if(i--,i===0)break;t++;continue}if(r[0]==="TERMINATOR"){t++;continue}if(r[1]==="|"&&i===1){t++;let f=[];while(t<e.length){let s=e[t];if(s[0]==="TERMINATOR"||s[0]==="OUTDENT"||s[1]==="|"&&i===1)break;f.push(s),t++}if(f.length>0)n.push(P1(f));continue}t++}if(n.length===0)return null;let a=V2(e,l);return{typeText:n.join(" | "),endIdx:a}}var j3=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),V3=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),k2={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},x3=new Set(Object.keys(k2)),w0=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),m0=new Set(["break","continue","debugger"]),y0=new Set(["NEW","TYPEOF","DELETE"]),A0=new Set(["IN","OF","INSTANCEOF"]),q2=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),g2=new Set([...q2,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","MAP_END","SYMBOL"]),O2=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","MAP_START","--","++","SYMBOL"]),d0=new Set(["+","-"]),b0=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&"]),R0=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}","MAP_END","SYMBOL"]),Y1=new Set(["(","[","{","MAP_START","PICK_START","OPTPICK_START","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),I1=new Set([")","]","}","MAP_END","PICK_END","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),D0={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START",MAP_START:"MAP_END",MAP_END:"MAP_START",PICK_START:"PICK_END",PICK_END:"PICK_START",OPTPICK_START:"PICK_END"},k3=new Set(["CATCH","THEN","ELSE","FINALLY",...I1]),x2=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),E0=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),S0=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT","FOR"]),M0=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","REGEX_END",")","CALL_END","]","INDEX_END","}","MAP_END","PICK_END","BOOL","NULL","UNDEFINED","INFINITY","NAN","SUPER","THIS","@","SYMBOL"]),e4=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),O0=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),i2=new Set(["INDENT","OUTDENT","TERMINATOR"]),L1=(e)=>e?.[0]==="IDENTIFIER"||e?.[0]==="PROPERTY",U2=(e,u)=>{if(e?.[0]===".")return!0;if(e?.[0]==="-")return e.spaced===!1&&!e.newLine&&u?.spaced===!1&&!u?.newLine;return!1},n4=new Set([".","?."]),i4=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),U0=new Set([...g2,"++","--"]),u4=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),q0=new Set(["*","/","%","//","%%"]),g0=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),F0=new Set(["<<",">>",">>>"]),$0=new Set(["!","~"]),N0=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,z0=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,H0=/^(?:<=>|<~|::|\*>|[-=]>|~>|~=|:=|=!|===|!==|\?\!|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,K0=/^[^\n\S]+/,I0=/^(?:\n[^\n\S]*)+/,W0=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,Q0=/^[-=]>/,P0=/^(?:~[=>]|=!)/,Y0=/^(?:'''\\|"""\\|'''|"""|'|")/,G0=/^(?:[^\\']|\\[\s\S])*/,T0=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,J0=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,Z0=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,t4=/\n+([^\n\S]*)(?=\S)/g,X0=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,l4=/^\w*/,B0=/^(?!.*(.).*\1)[gimsuy]*$/,v0=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,C0=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,L0=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,p0=/\s+$/,a4=/^\s*(?:,|\??\.(?![.\d]))/,j0=65279;function F2(e,u,{pre:t=0,row:l=0,col:n=0,len:i=0,data:a=null}={}){let r=[e,u];return r.pre=t,r.data=a,r.loc={r:l,c:n,n:i},r.spaced=t>0,r.newLine=!1,r}function z1(e,u,t){let l=F2(e,u);if(l.generated=!0,t)l.origin=t;return l}function H1(e,{row:u=0,col:t=0,len:l=1}={}){let n=SyntaxError(e);throw n.location={first_line:u,first_column:t,last_column:t+l-1},n}function V0(e){if(e==null)return NaN;switch(e.charAt(1)){case"b":return parseInt(e.slice(2).replace(/_/g,""),2);case"o":return parseInt(e.slice(2).replace(/_/g,""),8);case"x":return parseInt(e.slice(2).replace(/_/g,""),16);default:return parseFloat(e.replace(/_/g,""))}}class W1{tokenize(e,u={}){this.code=e,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=u.row||0,this.col=u.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,this.inTypeAnnotation=!1,e=this.clean(e),this.code=e;while(this.pos<e.length){this.chunk=e.slice(this.pos);let t=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(t===0)H1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(t),u.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let t=this.ends[this.ends.length-1];H1(`missing ${t.tag}`,{row:this.row,col:this.col})}if(u.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(e){if(e.charCodeAt(0)===j0)e=e.slice(1);if(e=e.replace(/\r\n?/g,`
|
|
1864
|
+
`),e=e.replace(p0,""),/^[^\n\S]/.test(e))e=`
|
|
1865
|
+
`+e;return e}advance(e){let u=this.code.slice(this.pos,this.pos+e);for(let t=0;t<u.length;t++)if(u[t]===`
|
|
1866
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=e}emit(e,u,{len:t,data:l,pre:n}={}){let i=F2(e,u,{pre:n??0,row:this.row,col:this.col,len:t??(typeof u==="string"?u.length:0),data:l});return this.tokens.push(i),i}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let e=this.prev();return e?e[0]:void 0}prevVal(){let e=this.prev();return e?e[1]:void 0}isReturnTypeSlot(){let e=this.tokens.length;if(e<2)return!1;let u=this.tokens[e-1];if(!u||u[1]!==":")return!1;let t=this.tokens[e-2];if(!t)return!1;let l=t[0];return l===")"||l==="CALL_END"||l==="PARAM_END"}inPickKeyPos(){let e=this.prev();if(!e)return!1;let u=e[0];if(u!=="{"&&u!==","&&u!==":"&&u!=="TERMINATOR"&&u!=="INDENT"&&u!=="OUTDENT")return!1;let t=0,l=this.tokens;for(let n=l.length-1;n>=0;n--){let i=l[n],a=i[0];if(a==="}"||a==="PICK_END"){t++;continue}if(a==="{"||a==="PICK_START"||a==="OPTPICK_START"){if(t===0){let r=l[n-1];return!!(r&&(r[0]==="."||r[0]==="?.")&&!r.spaced&&!i.spaced)}t--;continue}if(t===0&&(a==="("||a==="CALL_START"||a==="["||a==="INDEX_START"))return!1}return!1}identifierToken(){if(P0.test(this.chunk))return 0;let e=N0.exec(this.chunk);if(!e)return 0;let[,u,t]=e,l=u.length,n={},i;if(u==="own"&&this.prevTag()==="FOR")return this.emit("OWN",u,{len:l}),l;if(u==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",u,{len:l}),l;if(u==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let c=this.prevTag();if(c==="DEFAULT"||c==="IMPORT_ALL"||c==="IDENTIFIER")return this.emit("AS",u,{len:l}),l}if((u==="as"||u==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(u==="as!"?"FORASAWAIT":"FORAS","as",{len:l}),l;if(u==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",u,{len:l}),l;let a;if(u==="do"&&(a=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),a[1].length+3;let r=this.prev();if(t&&r&&r[0]==="TERNARY")t=null;if(t&&t.length>1&&/[a-zA-Z_$]/.test(this.chunk[l+t.length]))t=null;if(t||r&&(r[0]==="."||r[0]==="?."||!r.spaced&&r[0]==="@")||this.inPickKeyPos()){if(i="PROPERTY",this.inRenderBlock&&r&&r[0]==="."&&!t){let c=this.chunk.slice(l);while(c[0]==="-"&&/^-[a-zA-Z]/.test(c)){let h=/^-([a-zA-Z][\w]*)/.exec(c);if(!h)break;u+="-"+h[1],l+=1+h[1].length,c=this.chunk.slice(l)}}}else i="IDENTIFIER";let f=u.endsWith("!")||u.endsWith("?")?u.slice(0,-1):u;if(i==="IDENTIFIER"&&!u.endsWith("!")&&!u.endsWith("?")&&(j3.has(u)||V3.has(u)||x3.has(u))&&!(this.exportSpecifierList&&x3.has(u))){if(k2[u]!==void 0)n.original=u,u=k2[u];i=this.classifyKeyword(u,i,n)}if(i==="IDENTIFIER"&&w0.has(f))if(f==="void"&&(this.inTypeAnnotation||this.prevTag()==="=>"||this.isReturnTypeSlot()));else H1(`reserved word '${f}'`,{row:this.row,col:this.col,len:l});if(i==="PROPERTY"&&r){if(r[0]==="."&&this.tokens.length>1){let c=this.tokens[this.tokens.length-2];if(c[0]==="UNARY"&&c[1]==="new")c[0]="NEW_TARGET";if(c[0]==="IMPORT"&&c[1]==="import")this.seenImport=!1,c[0]="IMPORT_META"}}if(u.length>1&&u.endsWith("!"))n.bang=!0,u=u.slice(0,-1);if(u.length>1&&u.endsWith("?"))n.optional=!0,u=u.slice(0,-1);let s=this.emit(i,u,{len:l,data:Object.keys(n).length?n:null});if(i==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(t)return this.emit(":",":",{len:1}),l+t.length;return l}classifyKeyword(e,u,t){switch(e){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return e}if(m0.has(e))return"STATEMENT";let l=e.toUpperCase();if(l==="WHEN"&&i2.has(this.prevTag()))return"LEADING_WHEN";if(l==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(l==="UNLESS")return"UNLESS";if(l==="IMPORT")return this.seenImport=!0,"IMPORT";if(l==="EXPORT")return this.seenExport=!0,"EXPORT";if(y0.has(l))return"UNARY";if(A0.has(l)){if(l!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+l;if(this.prevVal()==="!"){let n=this.tokens.pop();t.invert=n.data?.original||n[1]}return"RELATION"}if(j3.has(e)||V3.has(e))return l;return u}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let u=this.prev();if(u&&(u[0]==="IDENTIFIER"||u[0]==="PROPERTY"))return 0;let t=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(t)return this.emit("IDENTIFIER","div#"+t[1]),t[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}let e=W0.exec(this.chunk);if(!e)return 0;return e[0].length}whitespaceToken(){let e=K0.exec(this.chunk);if(!e&&this.chunk[0]!==`
|
|
1867
|
+
`)return 0;let u=this.prev();if(u)if(e)u.spaced=!0,u.pre=e[0].length;else u.newLine=!0;return e?e[0].length:0}lineToken(){let e=I0.exec(this.chunk);if(!e)return 0;let u=e[0],t=u.length-1-u.lastIndexOf(`
|
|
1868
|
+
`);if(this.isUnfinished()){if(t<this.indent&&/^\s*,/.test(this.chunk)&&!i4.has(this.prevTag())){if(this.outdentTo(t,u.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return u.length}return u.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(this.inTypeAnnotation=!1,t===this.indent)return this.emitNewline(),u.length;if(t>this.indent){if(!this.tokens.length)return this.indent=t,u.length;let l=t-this.indent;return this.emit("INDENT",l,{len:t}),this.indents.push(l),this.ends.push({tag:"OUTDENT"}),this.indent=t,u.length}return this.outdentTo(t,u.length),u.length}outdentTo(e,u=0){if(this.inRenderBlock&&e<=this.renderIndent)this.inRenderBlock=!1;let t=this.indent-e;while(t>0){let l=this.indents[this.indents.length-1];if(!l)t=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",t,{len:u}),t-=l}this.emitNewline(),this.indent=e}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
1869
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&a4.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let t=this.tokens.length;if(t>=2){let l=this.tokens[t-2][0];if(l==="INDENT"||l==="TERMINATOR"||l==="OUTDENT")return!1}}let e=this.tokens[this.tokens.length-1];if(e?.[0]==="COMPARE"&&e[1]===">"||e?.[0]==="SHIFT"&&(e[1]===">>"||e[1]===">>>")){let t=0;for(let l=this.tokens.length-1;l>=0;l--){let n=this.tokens[l];if(n[0]==="COMPARE"&&n[1]===">")t++;else if(n[0]==="SHIFT"&&n[1]===">>")t+=2;else if(n[0]==="SHIFT"&&n[1]===">>>")t+=3;else if(n[0]==="COMPARE"&&n[1]==="<")t--;if(t===0&&n[0]==="TYPE_ANNOTATION")return!1;if(t===0&&n[0]==="IDENTIFIER"&&n[1]==="type")return!1;if(n[0]==="INTERFACE")return!1;if(n[0]==="TERMINATOR"||n[0]==="INDENT"||n[0]==="OUTDENT"){let i=-1;if(n[0]==="INDENT")i=l;else{let a=n[0]==="OUTDENT"?1:0;for(let r=l-1;r>=0;r--){let f=this.tokens[r];if(f[0]==="OUTDENT")a++;else if(f[0]==="INDENT"){if(a===0){i=r;break}a--}}}if(i>0)for(let a=i-1;a>=0;a--){let r=this.tokens[a];if(r[0]==="TERMINATOR"||r[0]==="INDENT"||r[0]==="OUTDENT")break;if(r[0]==="INTERFACE")return!1;if(r[0]==="IDENTIFIER"&&r[1]==="type"){let f=this.tokens[a-1];if(!f||f[0]==="TERMINATOR"||f[0]==="EXPORT")return!1;break}}break}}}return a4.test(this.chunk)||i4.has(this.prevTag())}pair(e){let u=this.ends[this.ends.length-1];if(!u||e!==u.tag){if(u?.tag==="OUTDENT"){let t=this.indents[this.indents.length-1];if(t)this.outdentTo(this.indent-t);return this.pair(e)}H1(`unmatched ${e}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let e=Y0.exec(this.chunk);if(!e)return 0;let u=e[0],t=u.length>1&&u.endsWith("\\"),l=t?u.slice(0,-1):u,n=this.prev();if(n&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))n[0]="FROM";let i;switch(l){case"'":i=G0;break;case'"':i=T0;break;case"'''":i=J0;break;case'"""':i=Z0;break}let{tokens:a,index:r}=this.matchWithInterpolations(i,u,l),f=l.length===3,s=null;if(f)s=this.processHeredocIndent(r,l,a);return this.mergeInterpolationTokens(a,{quote:l,indent:s,endOffset:r,raw:t}),r}processHeredocIndent(e,u,t){let l=e-u.length,n=l-1;while(n>=0&&this.chunk[n]!==`
|
|
1870
|
+
`)n--;n++;let i=this.chunk.slice(n,l),a=/^\s*$/.test(i)?i.length:null,r="";for(let c of t)if(c[0]==="NEOSTRING")r+=c[1];let f=null,s;t4.lastIndex=0;while(s=t4.exec(r))if(f===null||s[1].length>0&&s[1].length<f.length)f=s[1];if(a===null)return f;if(f===null)return" ".repeat(a);if(a<=f.length)return" ".repeat(a);return f}matchWithInterpolations(e,u,t,l){if(!t)t=u;if(!l)l=/^[#$]\{/;let n=[],i=u.length;if(this.chunk.slice(0,i)!==u)return null;let a=this.chunk.slice(i);while(!0){let[r]=e.exec(a);n.push(["NEOSTRING",r,{offset:i}]),a=a.slice(r.length),i+=r.length;let f=l.exec(a);if(!f)break;let c=f[0].length-1,h=a.slice(c),o=new W1().tokenize(h,{row:this.row,col:this.col+i+c,untilBalanced:!0,rewrite:!1}),_=o.index+c;if(a[_-1]==="}"){let y=o.tokens[0],w=o.tokens[o.tokens.length-1];y[0]="INTERPOLATION_START",y[1]="(",w[0]="INTERPOLATION_END",w[1]=")"}if(o.tokens[1]?.[0]==="TERMINATOR")o.tokens.splice(1,1);let m=o.tokens.length;if(m>2&&o.tokens[m-3]?.[0]==="INDENT"&&o.tokens[m-2]?.[0]==="OUTDENT")o.tokens.splice(m-3,2);n.push(["TOKENS",o.tokens]),a=a.slice(_),i+=_}if(a.slice(0,t.length)!==t)H1(`missing ${t}`,{row:this.row,col:this.col});return{tokens:n,index:i+t.length}}mergeInterpolationTokens(e,{quote:u,indent:t,endOffset:l,raw:n}){if(e.length>1)this.emit("STRING_START","(",{len:u?.length||0,data:{quote:u}});for(let i=0;i<e.length;i++){let[a,r]=e[i];if(a==="TOKENS")for(let f of r)this.tokens.push(f);else if(a==="NEOSTRING"){let f=r;if(t){let s=new RegExp("\\n"+t,"g");f=f.replace(s,`
|
|
1871
|
+
`)}if(i===0&&u?.length===3)f=f.replace(/^\n/,"");if(i===e.length-1&&u?.length===3)f=f.replace(/\n[^\S\n]*$/,"");if(n)f=f.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${f}"`,{len:r.length,data:{quote:u}})}}if(e.length>1)this.emit("STRING_END",")",{len:u?.length||0});return l}numberToken(){let e=z0.exec(this.chunk);if(!e)return 0;let u=e[0],t=u.length,l={row:this.row,col:this.col};if(/^0[BOX]/.test(u))H1(`radix prefix in '${u}' must be lowercase`,{...l,col:l.col+1});if(/^0\d*[89]/.test(u))H1(`decimal literal '${u}' must not be prefixed with '0'`,{...l,len:t});if(/^0\d+/.test(u))H1(`octal literal '${u}' must be prefixed with '0o'`,{...l,len:t});let n=V0(u),i=n===1/0?"INFINITY":"NUMBER",a={parsedValue:n};if(i==="INFINITY")a.original=u;return this.emit(i,u,{len:t,data:a}),t}regexToken(){let e=this.matchWithInterpolations(v0,"///");if(e){let{tokens:s,index:c}=e,[h]=l4.exec(this.chunk.slice(c)),o=c+h.length;if(s.length===1||!s.some((_)=>_[0]==="TOKENS")){let _=(s[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${_}/${h}`,{len:o,data:{delimiter:"///",heregex:{flags:h}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(s,{quote:"///",endOffset:o-h.length}),h)this.emit(",",",",{len:0}),this.emit("STRING",`"${h}"`,{len:h.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return o}let u=X0.exec(this.chunk);if(!u)return 0;let[t,l,n]=u,i=this.prev();if(i){if(i.spaced&&q2.has(i[0])&&(!n||/^\/=?\s/.test(t)))return 0;if(U0.has(i[0])&&!(i.spaced&&q2.has(i[0])))return 0}if(!n)H1("missing / (unclosed regex)",{row:this.row,col:this.col});let a=t.length,[r]=l4.exec(this.chunk.slice(a)),f=a+r.length;if(!B0.test(r))H1(`invalid regular expression flags ${r}`,{row:this.row,col:this.col+a,len:r.length});return this.emit("REGEX",`/${l}/${r}`,{len:f,data:{delimiter:"/"}}),f}jsToken(){if(this.chunk[0]!=="`")return 0;let e=L0.exec(this.chunk)||C0.exec(this.chunk);if(!e)return 0;let u=e[1],t=e[0].length;return this.emit("JS",u,{len:t,data:{here:e[0].startsWith("```")}}),t}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let e=this.chunk[2];if(!e||/\s/.test(e))return 0;let t={"[":"]","(":")","{":"}","<":">"}[e]||e,l=t!==e,n=1,i=3;while(i<this.chunk.length&&n>0){let s=this.chunk[i];if(s==="\\"){i+=2;continue}if(l&&s===e)n++;if(s===t)n--;if(n>0)i++}if(n!==0)return 0;let a=this.chunk.slice(3,i),r=i+1,f=[];if(a.trim()){let s=a.trim().split(/(?<!\\)\s+/);for(let c of s)f.push(c.replace(/\\ /g," "))}this.emit("[","[",{len:r});for(let s=0;s<f.length;s++){if(s>0)this.emit(",",",");this.emit("STRING",`"${f[s]}"`)}return this.emit("]","]"),r}symbolToken(){if(this.chunk[0]!==":")return 0;let e=this.chunk[1];if(!e||e==="="||e===":"||/\s/.test(e))return 0;if(!/[a-zA-Z_$]/.test(e))return 0;let u=/^((?:(?!\s)[$\w\x7f-\uffff])+)/.exec(this.chunk.slice(1));if(!u)return 0;let t=u[1],l=t.length+1;return this.emit("SYMBOL",t,{len:l}),l}literalToken(){let e=this.wordLiteral();if(e)return e;let u=this.symbolToken();if(u)return u;let t=H0.exec(this.chunk),l=t?t[0]:this.chunk.charAt(0),n=l,i=this.prev();if(Q0.test(l))this.tagParameters();if(l==="="&&i&&i[1]==="."&&!i.spaced){let a=this.tokens,r=a.length-2;while(r>=1&&a[r][0]==="PROPERTY"&&a[r-1]?.[1]===".")r-=2;if(r>=0&&(a[r][0]==="IDENTIFIER"||a[r][0]===")"||a[r][0]==="]")){let f=a.slice(r,a.length-1);i[0]="=",i[1]="=";for(let s of f)this.tokens.push(F2(s[0],s[1],{pre:0,row:s[2],col:s[3],len:s[4]}));return this.tokens.push(F2(".",".",{pre:0,row:this.row,col:this.col,len:1})),l.length}}if(i&&(l==="="||u4.has(l))){if(l==="="&&(i[1]==="||"||i[1]==="&&"||i[1]==="??")&&!i.spaced)return i[0]="COMPOUND_ASSIGN",i[1]+="=",l.length}if(l==="("&&i?.[0]==="IMPORT")i[0]="DYNAMIC_IMPORT";if(l==="{"&&this.seenImport)this.importSpecifierList=!0;if(l==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(l==="{"&&i?.[0]==="EXPORT")this.exportSpecifierList=!0;if(l==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(l===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,n="TERMINATOR";else if(l==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(l==="::")n="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(l==="~=")n="COMPUTED_ASSIGN";else if(l===":=")n="REACTIVE_ASSIGN";else if(l==="<=>")n="BIND";else if(l==="<~")n="GATE",this.inTypeAnnotation=!1;else if(l==="~>")n="EFFECT",this.inTypeAnnotation=!1;else if(l==="=!")n="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(l==="*>"&&(!i||i[0]==="TERMINATOR"||i[0]==="INDENT"||i[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let a=this.chunk.slice(2),r=/^@(\s*)=(?!=)/.exec(a);if(r){let s=r[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let c=this.emit("PROPERTY","assign");return c.spaced=!0,this.emit("@","@"),this.emit(",",","),3+s.length+1}let f=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(a);if(f){let s=f[1],c=f[2],h=s[0]==="@",o=h?s.slice(1):s,_=o?o.split("."):[],m=()=>{if(h){if(this.emit("@","@"),_.length>0)this.emit("PROPERTY",_[0])}else this.emit("IDENTIFIER",_[0]);for(let w=1;w<_.length;w++)this.emit(".","."),this.emit("PROPERTY",_[w])};m(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),m(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let y=this.prev();return y.mergeClose=!0,2+s.length+c.length+1}}else if(l==="*"&&i?.[0]==="EXPORT")n="EXPORT_ALL";else if(q0.has(l))n="MATH";else if(g0.has(l))n="COMPARE";else if(u4.has(l))n="COMPOUND_ASSIGN";else if($0.has(l))n="UNARY_MATH";else if(F0.has(l))n="SHIFT";else if(l==="?"&&i?.spaced)n="TERNARY";else if(l==="?!"&&i&&!i.spaced)n="PRESENCE";else if(l==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))n="?.";else if(i){if(l==="("&&!i.spaced&&q2.has(i[0])){if(i[0]==="?.")i[0]="ES6_OPTIONAL_CALL";n="CALL_START"}if(l==="["&&!i.spaced&&g2.has(i[0])){if(n="INDEX_START",i[0]==="?.")i[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(l==="="||n==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(l==="="){let a=this.tokens.length;if(a>=2&&this.tokens[a-1][0]==="IDENTIFIER"&&this.tokens[a-2][0]==="IDENTIFIER"&&this.tokens[a-2][1]==="type"&&(a===2||this.tokens[a-3][0]==="TERMINATOR"||this.tokens[a-3][0]==="INDENT"||this.tokens[a-3][0]==="OUTDENT"||this.tokens[a-3][0]==="EXPORT"))this.inTypeAnnotation=!0}if(l==="("||l==="{"||l==="[")this.ends.push({tag:D0[l],origin:[n,l]});else if(l===")"||l==="}"||l==="]")this.pair(l);return this.emit(n,l,{len:l.length}),l.length}tagParameters(){let e=this.tokens.length-1;if(this.tokens[e]?.[0]!==")"){let l=this.tokens.length,n=0,i=l-1,a=-1;while(i>=0){let r=this.tokens[i],f=r[0];if(f===")"||f==="]"||f==="}"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&r[1]===">")n++;else if(f==="("||f==="["||f==="{"||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&r[1]==="<")n--;else if(n===0){if(f==="TYPE_ANNOTATION"){if(i>0&&this.tokens[i-1][0]===")")a=i-1;break}if(f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="="||f==="->"||f==="=>")break}i--}if(a<0)return this.tagDoIife();e=a}let u=e,t=[];this.tokens[u][0]="PARAM_END";while(u-- >0){let l=this.tokens[u];if(l[0]===")")t.push(l);else if(l[0]==="("||l[0]==="CALL_START")if(t.length)t.pop();else if(l[0]==="(")return l[0]="PARAM_START",this.tagDoIife(u-1);else{this.tokens[e][0]="CALL_END";return}}}tagDoIife(e){let u=this.tokens[e??this.tokens.length-1];if(u?.[0]==="DO")u[0]="DO_IIFE"}rewrite(e){return this.tokens=e,this.removeLeadingNewlines(),this.rewriteDottedPicks(),this.rewriteMapLiterals(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.rewriteTypes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteSchema?.(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let e=0;while(this.tokens[e]?.[0]==="TERMINATOR")e++;if(e>0)this.tokens.splice(0,e)}rewriteMapLiterals(){let e=this.tokens;for(let u=0;u<e.length;u++){if(e[u][0]!=="MATH"||e[u][1]!=="*")continue;let t=e[u+1];if(!t||t[0]!=="{")continue;if(e[u].spaced||e[u].newLine)continue;let l=e[u-1];if(l&&g2.has(l[0]))continue;e.splice(u,1),e[u][0]="MAP_START";let n=1;for(let i=u+1;i<e.length&&n>0;i++){let a=e[i][0];if(a==="{"||a==="MAP_START")n++;if(a==="}"){if(n--,n===0)e[i][0]="MAP_END"}}}}rewriteDottedPicks(){let e=this.tokens;for(let u=0;u<e.length;u++){let t=e[u][0];if(t!=="."&&t!=="?.")continue;let l=e[u+1];if(!l||l[0]!=="{")continue;if(e[u].spaced||e[u].newLine)continue;let n=e[u-1];if(!n||!g2.has(n[0]))continue;let i=t==="?.";e.splice(u,1),e[u][0]=i?"OPTPICK_START":"PICK_START";let a=1;for(let r=u+1;r<e.length&&a>0;r++){let f=e[r][0];if(f==="{"||f==="PICK_START"||f==="OPTPICK_START")a++;else if(f==="}"){if(a--,a===0){e[r][0]="PICK_END";break}}}}}closeOpenCalls(){this.scanTokens((e,u)=>{if(e[0]==="CALL_START")this.detectEnd(u+1,(t)=>t[0]===")"||t[0]==="CALL_END",(t)=>t[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((e,u)=>{if(e[0]==="INDEX_START")this.detectEnd(u+1,(t)=>t[0]==="]"||t[0]==="INDEX_END",(t,l)=>{if(this.tokens[l+1]?.[0]===":")e[0]="[",t[0]="]";else t[0]="INDEX_END"});return 1})}normalizeLines(){let e=null,u=null,t=null,l=(i,a)=>{return i[1]!==";"&&O0.has(i[0])&&!(i[0]==="TERMINATOR"&&k3.has(this.tokens[a+1]?.[0]))&&!(i[0]==="ELSE"&&e!=="THEN")||i[0]==="INDENT"&&!i.generated&&(e==="->"||e==="=>")||i[0]===","&&(e==="->"||e==="=>")&&!this.commaInImplicitCall(a)&&!this.commaInImplicitObject(a)||n4.has(i[0])&&(this.tokens[a-1]?.newLine||this.tokens[a-1]?.[0]==="OUTDENT")},n=(i,a)=>{let r=this.tokens[a-1]?.[0]===","?a-1:a;this.tokens.splice(r,0,t)};this.scanTokens((i,a,r)=>{let[f]=i;if(f==="TERMINATOR"){if(this.tokens[a+1]?.[0]==="ELSE"&&this.tokens[a-1]?.[0]!=="OUTDENT")return r.splice(a,1,...this.makeIndentation()),1;if(k3.has(this.tokens[a+1]?.[0]))return r.splice(a,1),0}if(f==="CATCH")for(let s=1;s<=2;s++){let c=this.tokens[a+s]?.[0];if(c==="OUTDENT"||c==="TERMINATOR"||c==="FINALLY")return r.splice(a+s,0,...this.makeIndentation()),2+s}if((f==="->"||f==="=>")&&(this.tokens[a+1]?.[0]===","||this.tokens[a+1]?.[0]==="]"))return[u,t]=this.makeIndentation(),r.splice(a+1,0,u,t),1;if(e4.has(f)&&this.tokens[a+1]?.[0]!=="INDENT"&&!(f==="ELSE"&&this.tokens[a+1]?.[0]==="IF")&&!(f==="ELSE"&&this.tokens[a-1]?.[0]!=="OUTDENT")){if(e=f,[u,t]=this.makeIndentation(),f==="THEN")u.fromThen=!0;if(r.splice(a+1,0,u),f==="THEN"&&this.singleLineOwner(a)==="LEADING_WHEN")this.detectWhenThenEnd(a+2,l,n);else this.detectEnd(a+2,l,n);if(f==="THEN")r.splice(a,1);return 1}return 1})}singleLineOwner(e){let u=new Set(["LEADING_WHEN","IF","POST_IF","UNLESS","POST_UNLESS","ELSE","CATCH","TRY","FINALLY","->","=>"]);for(let t=e-1;t>=0;t--){let l=this.tokens[t],n=l?.[0];if(u.has(n))return n;if(i2.has(n)||l?.newLine)return null}return null}detectWhenThenEnd(e,u,t){let l=0,n=0;while(e<this.tokens.length){let i=this.tokens[e],a=i[0];if(l===0){if(a==="THEN"&&this.singleLineOwner(e)!=="LEADING_WHEN")n++;else if(a==="ELSE"&&n>0)n--;else if(u.call(this,i,e))return t.call(this,i,e)}if(Y1.has(a))l++;if(I1.has(a))l--;if(l<0)return t.call(this,i,e);e++}}tagPostfixConditionals(){let e=null,u=(l,n)=>{return l[0]==="TERMINATOR"||l[0]==="INDENT"&&!e4.has(this.tokens[n-1]?.[0])},t=(l)=>{if(l[0]!=="INDENT"||l.generated&&!l.fromThen)e[0]="POST_"+e[0]};this.scanTokens((l,n)=>{if(l[0]!=="IF"&&l[0]!=="UNLESS")return 1;if(this.tokens[n-1]?.[0]==="INTERPOLATION_START")return 1;return e=l,this.detectEnd(n+1,u,t),1})}rewriteTaggedTemplates(){let e=this.tokens;for(let u=e.length-2;u>=0;u--)if(e[u][0]==="IDENTIFIER"&&e[u][1]==="$"&&(e[u+1]?.[0]==="STRING"||e[u+1]?.[0]==="STRING_START")){let t=e[u-1];if(t&&E0.has(t[0])){if(e.splice(u,1),t.spaced=!1,e[u].spaced=!1,e[u].pre=0,e[u].newLine)e[u].newLine=!1}}}addImplicitBracesAndParens(){let e=[],u=!1;this.scanTokens((t,l,n)=>{let[i]=t,a=n[l-1]||[],r=n[l+1]||[],[f]=a,[s]=r,c=l,h=(S)=>l-c+S,o=()=>e[e.length-1],_=(S)=>S?.[2]?.ours,m=()=>_(o())&&o()?.[0]==="(",y=()=>_(o())&&o()?.[0]==="{",w=(S)=>{e.push(["(",S,{ours:!0}]),n.splice(S,0,z1("CALL_START","("))},b=()=>{e.pop(),n.splice(l,0,z1("CALL_END",")")),l+=1},D=(S,g={})=>{e.push(["{",S,{sameLine:!0,startsLine:g.startsLine??!0,ours:!0}]);let q=z1("{","{");if(!q.data)q.data={};q.data.generated=!0,n.splice(S,0,q)},A=(S)=>{S=S??l,e.pop(),n.splice(S,0,z1("}","}")),l+=1},d=i==="FOR"&&!t.newLine&&M0.has(f);if((m()||y())&&S0.has(i)&&!d)return e.push(["CONTROL",l,{ours:!0}]),h(1);if(i==="INDENT"&&_(o())){if(f!=="=>"&&f!=="->"&&f!=="["&&f!=="("&&f!==","&&f!=="{"&&f!=="ELSE"&&f!=="=")while(m()||y()&&f!==":")if(m())b();else A();if(o()?.[2]?.ours&&o()[0]==="CONTROL")e.pop();return e.push([i,l]),h(1)}if(Y1.has(i))return e.push([i,l]),h(1);if(I1.has(i)){while(_(o()))if(m())b();else if(y())A();else e.pop();e.pop()}let R=!1;if(s==="-"&&!r.spaced&&!r.newLine&&L1(t))for(let S=l;S<n.length-2;S+=2){if(!U2(n[S+1],n[S+2]))break;if(!L1(n[S+2]))break;if(n[S+3]?.[0]===":"){R=!0;break}}if(!R&&x2.has(i)&&t.spaced&&(O2.has(s)||s==="..."&&O2.has(n[l+2]?.[0])||d0.has(s)&&!r.spaced&&!r.newLine)&&!((i==="]"||i==="}")&&(s==="->"||s==="=>")))return w(l+1),h(2);if(x2.has(i)&&this.tokens[l+1]?.[0]==="INDENT"&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return w(l+1),e.push(["INDENT",l+2]),h(3);if(i==="TERNARY")u=!0;if(i===":"){if(u)return u=!1,h(1);if(L1(n[l-1])&&U2(n[l-2],n[l-1])){let q=l-2;while(q>=2&&U2(n[q],n[q+1])&&L1(n[q-1]))q-=2;if(q+=1,L1(n[q])){let H="";for(let L=q;L<l;L++)H+=n[L][1];let B=z1("STRING",`"${H}"`,n[q]);B.pre=n[q].pre,B.spaced=n[q].spaced,B.newLine=n[q].newLine,B.loc=n[q].loc,n.splice(q,l-q,B),l=q+1}}let S=I1.has(this.tokens[l-1]?.[0])?e[e.length-1]?.[1]??l-1:l-1;if(this.tokens[l-2]?.[0]==="@")S=l-2;let g=S<=0||i2.has(this.tokens[S-1]?.[0])||this.tokens[S-1]?.newLine;if(o()){let[q,H]=o(),B=e[e.length-2],L=(W)=>W==="{"||W==="MAP_START"||W==="PICK_START"||W==="OPTPICK_START";if((L(q)||q==="INDENT"&&L(B?.[0])&&!_(B))&&(g||this.tokens[S-1]?.[0]===","||L(this.tokens[S-1]?.[0])||L(this.tokens[S]?.[0])))return h(1)}return D(S,{startsLine:!!g}),h(2)}if(i2.has(i))for(let S=e.length-1;S>=0;S--){if(!_(e[S]))break;if(e[S][0]==="{")e[S][2].sameLine=!1}let E=f==="OUTDENT"||a.newLine,O=i==="||"||i==="&&",U=!1;if(O){let S=l+1,g=n[S]?.[0];if(g==="("||g==="["||g==="{"){for(let q=1;++S<n.length&&q>0;)if(g=n[S][0],g==="("||g==="["||g==="{")q++;else if(g===")"||g==="]"||g==="}")q--}else if(g&&g!=="TERMINATOR"&&g!=="OUTDENT"&&g!==",")S++;U=n[S]?.[0]===","}let $=(S)=>{for(let g=0;S<n.length;S++){let q=n[S][0];if(q==="("||q==="["||q==="{"||q==="CALL_START"||q==="INDEX_START"||q==="INDENT")g++;else if(q===")"||q==="]"||q==="}"||q==="CALL_END"||q==="INDEX_END"||q==="OUTDENT"){if(g===0)return!1;g--}else if(q==="TERMINATOR"&&g===0)return this.looksObjectish(S+1)}return!1};if(b0.has(i)&&!U||n4.has(i)&&E)while(_(o())){let[S,,{sameLine:g,startsLine:q}]=o();if(m()&&f!==",")b();else if(y()&&!O&&g&&i!=="TERMINATOR"&&f!==":"&&!((i==="POST_IF"||i==="POST_UNLESS")&&$(l+1)))A();else if(y()&&i==="TERMINATOR"&&f!==","&&!(q&&this.looksObjectish(l+1)))A();else if(o()?.[2]?.ours&&o()[0]==="CONTROL"&&n[o()[1]]?.[0]==="CLASS"&&i==="TERMINATOR")e.pop();else break}if(i===","&&!this.looksObjectish(l+1)&&y()&&(s!=="TERMINATOR"||!this.looksObjectish(l+2))){let S=s==="OUTDENT"?1:0;while(y())A(l+S)}return h(1)})}addImplicitCallCommas(){let e=0,u=0,t=this.tokens;while(u<t.length){let l=t[u][0],n=u>0?t[u-1][0]:null;if(l==="CALL_START"||l==="(")e++;if(l==="CALL_END"||l===")")e--;if(e>0&&(l==="->"||l==="=>")&&R0.has(n))t.splice(u,0,z1(",",",")),u++;u++}}scanTokens(e){let u=0;while(u<this.tokens.length)u+=e.call(this,this.tokens[u],u,this.tokens)}detectEnd(e,u,t,l={}){let n=0;while(e<this.tokens.length){let i=this.tokens[e];if(n===0&&u.call(this,i,e))return t.call(this,i,e);if(Y1.has(i[0]))n++;if(I1.has(i[0]))n--;if(n<0){if(l.returnOnNegativeLevel)return;return t.call(this,i,e)}e++}}closeMergeAssignments(){let e=this.tokens;for(let u=0;u<e.length;u++){if(!e[u].mergeClose)continue;let t=0;for(let l=u+1;l<e.length;l++){let n=e[l][0];if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="INDENT")t++;if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="OUTDENT")t--;if(t<0||t===0&&n==="TERMINATOR"){e.splice(l,0,z1("CALL_END",")",e[l-1]));break}if(l===e.length-1){e.splice(l+1,0,z1("CALL_END",")",e[l]));break}}}}commaInImplicitCall(e){let u=0;for(let t=e-1;t>=0;t--){let l=this.tokens[t][0];if(I1.has(l)){u++;continue}if(Y1.has(l)){if(l==="INDENT")return!1;if(u--,u<0)return!1;continue}if(u>0)continue;if(x2.has(l)&&this.tokens[t].spaced){let n=this.tokens[t+1]?.[0];return O2.has(n)||n==="..."&&O2.has(this.tokens[t+2]?.[0])}}return!1}commaInImplicitObject(e){let u=0;for(let t=e-1;t>=0;t--){let l=this.tokens[t][0];if(I1.has(l)){u++;continue}if(Y1.has(l)){if(u--,u<0)return!1;continue}if(u>0)continue;if(l===":"&&t>0&&this.tokens[t-1][0]==="PROPERTY")return this.looksObjectish(e+1);if(i2.has(l))return!1}return!1}looksObjectish(e){if(!this.tokens[e])return!1;if(this.tokens[e]?.[0]==="@"&&this.tokens[e+2]?.[0]===":")return!0;if(this.tokens[e+1]?.[0]===":")return!0;if(L1(this.tokens[e]))for(let u=e+1;u<this.tokens.length;u+=2){if(!U2(this.tokens[u],this.tokens[u+1]))break;if(!L1(this.tokens[u+1]))break;if(this.tokens[u+2]?.[0]===":")return!0}if(Y1.has(this.tokens[e]?.[0])){let u=null;if(this.detectEnd(e+1,(t)=>I1.has(t[0]),(t,l)=>u=l),u&&this.tokens[u+1]?.[0]===":")return!0}return!1}findTagsBackwards(e,u){let t=new Set(u),l=[];while(e>=0){let n=this.tokens[e]?.[0];if(!l.length&&t.has(n))return!0;if(I1.has(n))l.push(n);if(Y1.has(n)&&l.length)l.pop();if(!l.length&&(Y1.has(n)&&!this.tokens[e]?.generated||i2.has(n)))break;e--}return!1}makeIndentation(e){let u=z1("INDENT",2),t=z1("OUTDENT",2);if(e)u.generated=t.generated=!0,u.origin=t.origin=e;else u.explicit=t.explicit=!0;return[u,t]}}p3(W1);S2(W1);var x0=["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"],r4=new Set(x0);var k0=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var e6=["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view"],n6=["math","param","portal"],s4=new Set([...k0,...n6]),p1=new Set(e6),j1=new Set([...s4,...p1]);var f4="__bind_",c4="__",e3=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),o4="{ status?: number; message?: string; error?: Error; path?: string }",i6=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]),n3="http://www.w3.org/2000/svg";function u6(e){for(let u of e){if(!Array.isArray(u))continue;let t=u[1]instanceof String?u[1].valueOf():u[1],l=u[2]instanceof String?u[2].valueOf():u[2];if(t==="type"&&typeof l==="string")return l.replace(/^["']|["']$/g,"")}return null}function G1(e){if(typeof e==="string"||e instanceof String)return e.valueOf();if(Array.isArray(e)&&e[0]==="."&&e[1]==="this"&&(typeof e[2]==="string"||e[2]instanceof String))return e[2].valueOf();return null}function i3(e){return Array.isArray(e)&&e[0]==="."&&e[1]==="this"}function h2(e){if(e instanceof String&&e.type)return e.type;if(Array.isArray(e)&&e[2]instanceof String&&e[2].type)return e[2].type;return null}function $2(e){if(e instanceof String&&e.optional)return!0;if(Array.isArray(e)&&e[2]instanceof String&&e[2].optional)return!0;return!1}function h4(e){let u=[];while(Array.isArray(e)&&e[0]==="."){let t=e[2];if(!(typeof t==="string"||t instanceof String))return null;u.unshift(t.valueOf()),e=e[1]}if(typeof e==="string"||e instanceof String)u.unshift(e.valueOf());else return null;return u}function t6(e){let u,t=e;if(Array.isArray(e)&&Array.isArray(e[0])&&e[0][0]==="."){if(e.length!==2)return{error:"a keyed gate takes exactly one key argument"};t=e[0],u=e[1]}let l=h4(t);if(!l)return{error:"'<~' requires a literal @app.data.… path on the right-hand side"};if(l[0]==="this")l.shift();if(l[0]!=="app"||l[1]!=="data"||l.length<3)return{error:"'<~' requires a literal @app.data.… path on the right-hand side"};return{path:l.slice(2).join("."),keyExpr:u}}function l6(e){let u={error:"a keyed gate key may only reference params or query (e.g. params.id)"},t=typeof e==="string"||e instanceof String?e.valueOf():null;if(t!=null){if(/^-?[\d.]/.test(t)||t.startsWith('"')||t.startsWith("'"))return{code:t,stubCode:t};return u}let l=h4(e);if(!l)return u;if(l[0]==="this")l.shift();if(l[0]!=="params"&&l[0]!=="query"||l.length<2)return u;let n=l.join(".");return{code:n,stubCode:`this.${n}`}}function _4(e,u){let t=(s,c)=>s instanceof String?s[c]:void 0,l=u.prototype.classifyKeyword;u.prototype.classifyKeyword=function(s,c,h){if(s==="offer"||s==="accept"){let o=0;for(let _=this.tokens.length-1;_>=0;_--){let m=this.tokens[_][0];if(m==="OUTDENT")o++;else if(m==="INDENT")o--;if(o<0&&this.tokens[_-1]?.[0]==="COMPONENT")return s.toUpperCase()}return c}return l.call(this,s,c,h)},u.prototype.rewriteRender=function(){let s=(A,d,R)=>{let E=[A,d];if(E.pre=0,E.data=null,E.loc=R?.loc??{r:0,c:0,n:0},E.spaced=!1,E.newLine=!1,E.generated=!0,R)E.origin=R;return E},c=!1,h=0,o=0,_=[],m=(A)=>{let d=A.split("#")[0];return j1.has(d)},y=(A)=>{if(!A||typeof A!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(A)},w=(A)=>{return m(A)||y(A)},b=(A,d,R,E)=>{let O=1,U=d;while(U>=0&&O>0){let $=A[U][0];if($===R)O++;else if($===E)O--;if(O>0)U--}return U},D=(A,d)=>{let R=d;while(R>0){let E=A[R-1][0];if(E==="TERMINATOR"||E==="RENDER")break;if(E==="INDENT"||E==="OUTDENT"){let O=A[R][0];if(O==="CALL_END"||O===")"){R=b(A,R-1,O,O==="CALL_END"?"CALL_START":"(");continue}break}if(E==="CALL_END"||E===")"){R=b(A,R-2,E,E==="CALL_END"?"CALL_START":"(");continue}if(E==="INTERPOLATION_END"){R=b(A,R-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(E==="STRING_END"){R=b(A,R-2,"STRING_END","STRING_START");continue}R--}return A[R]&&A[R][0]==="IDENTIFIER"&&(w(A[R][1])||(R===0||A[R-1][0]==="INDENT"||A[R-1][0]==="TERMINATOR"||A[R-1][0]==="RENDER"))};this.scanTokens(function(A,d,R){let E=A[0],O=d<R.length-1?R[d+1]:null;if(E==="RENDER")return c=!0,h=o+1,1;if(E==="INDENT")return o++,1;if(E==="OUTDENT"){o--;let U=0;while(_.length>0&&_[_.length-1]>o){let $=s("CALL_END",")",A);R.splice(d+1+U,0,$),_.pop(),U++}if(c&&o<h)c=!1;return 1+U}if(!c)return 1;if(E==="="&&d>0){let U=R[d-1][0];if(U==="TERMINATOR"||U==="INDENT"||U==="RENDER"){let $=s("IDENTIFIER","__text__",A),S=s("CALL_START","(",A);return R.splice(d,1,$,S),this.detectEnd(d+2,(g)=>g[0]==="TERMINATOR"||g[0]==="OUTDENT",(g,q)=>R.splice(q,0,s("CALL_END",")",g)),{returnOnNegativeLevel:!0}),2}}if(E==="UNARY_MATH"&&A[1]==="~"&&O&&O[0]==="IDENTIFIER"){A[0]="PROPERTY",A[1]="__transition__";let U=s(":",":",A),$=s("STRING",`"${O[1]}"`,O);return R.splice(d+1,1,U,$),1}if(E==="PROPERTY"&&A[1][0]==="$"&&A[1].length>1)return A[0]="STRING",A[1]=`"data-${A[1].slice(1)}"`,1;if(E==="IDENTIFIER"&&!A.spaced){let U=[A[1]],$=d+1;while($+1<R.length){let S=R[$],g=R[$+1];if(S[0]==="-"&&!S.spaced&&(g[0]==="IDENTIFIER"||g[0]==="PROPERTY")){if(U.push(g[1]),$+=2,g[0]==="PROPERTY")break}else break}if(U.length>1&&$>d+1&&R[$-1][0]==="PROPERTY"){let S=U.join("-");if(S[0]==="$")S="data-"+S.slice(1);return A[0]="STRING",A[1]=`"${S}"`,R.splice(d+1,$-d-1),1}}if(E==="."){let U=d>0?R[d-1]:null,$=U?U[0]:null;if($==="INDENT"||$==="TERMINATOR"){if(O&&O[0]==="PROPERTY"){let S=d+2<R.length?R[d+2]:null;if(!S||S[0]!==":"){let g=s("IDENTIFIER","div",A);return R.splice(d,0,g),2}}if(!O||O[0]!=="(")return A[0]="IDENTIFIER",A[1]="div",0}}if(E==="IDENTIFIER"||E==="PROPERTY"){let U=R[d+1],$=R[d+2];if(U&&U[0]==="#"&&$&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){if(A[1]=A[1]+"#"+$[1],$.spaced)A.spaced=!0;return R.splice(d+1,2),0}}if(E==="BIND"){let U=d>0?R[d-1]:null,$=R[d+1];if(U&&(U[0]==="IDENTIFIER"||U[0]==="PROPERTY")&&$&&$[0]==="IDENTIFIER")return U[1]=`__bind_${U[1]}__`,A[0]=":",A[1]=":",1}if(E==="@"){let U=d+1;if(U<R.length&&R[U][0]==="PROPERTY"){U++;while(U+1<R.length&&R[U][0]==="."&&R[U+1][0]==="PROPERTY")U+=2;if(U>d+2&&U<R.length&&R[U][0]===":"){let $=s("[","[",A);R.splice(d,0,$);let S=s("]","]",R[U+1]);return R.splice(U+1,0,S),2}}}if(E==="."&&O&&O[0]==="("){let U=d>0?R[d-1]:null,$=U?U[0]:null,S=$==="INDENT"||$==="TERMINATOR",g=s("PROPERTY","__clsx",A);O[0]="CALL_START";let q=1;for(let H=d+2;H<R.length&&q>0;H++)if(R[H][0]==="("||R[H][0]==="CALL_START")q++;else if(R[H][0]===")"){if(q--,q===0)R[H][0]="CALL_END"}else if(R[H][0]==="CALL_END")q--;if(S){let H=s("IDENTIFIER","div",A);return R.splice(d,0,H),R.splice(d+2,0,g),3}else if($===":")return R[d]=s("IDENTIFIER","__clsx",A),1;else return R.splice(d+1,0,g),2}if(O&&O[0]==="INDENT"){if(O.fromThen)return 1;if(E==="->"||E==="=>"||E==="CALL_START"||E==="(")return 1;let U=!1,$=d>0?R[d-1][0]:null,S=$==="IF"||$==="UNLESS"||$==="WHILE"||$==="UNTIL"||$==="WHEN"||$==="FORIN"||$==="FOROF"||$==="FORAS"||$==="FORASAWAIT"||$==="BY",g=!1;if(E==="CALL_END"){let H=1;for(let B=d-1;B>=0&&H>0;B--)if(R[B][0]==="CALL_END")H++;else if(R[B][0]==="CALL_START"){if(H--,H===0&&B>0&&R[B-1][0]==="PROPERTY"&&R[B-1][1]==="__clsx")g=!0}}let q=E==="IDENTIFIER"&&($==="INDENT"||$==="TERMINATOR"||$==="RENDER");if(g)U=!0;else if(E==="IDENTIFIER"&&w(A[1])&&!S)U=!0;else if(E==="IDENTIFIER"&&!S)U=q||D(R,d);else if(E==="PROPERTY"||E==="STRING"||E==="STRING_END"||E==="NUMBER"||E==="BOOL"||E==="CALL_END"||E===")"||E==="PRESENCE")U=D(R,d);if(U){let H=!1;if(E==="PROPERTY"&&d>0&&R[d-1][0]==="."){let L=d;while(L>=2&&R[L-1][0]==="."&&R[L-2][0]==="PROPERTY")L-=2;if(L>=2&&R[L-1][0]==="."&&R[L-2][0]==="IDENTIFIER"&&w(R[L-2][1])){let W=L>=3?R[L-3][0]:null;if(!W||W==="INDENT"||W==="OUTDENT"||W==="TERMINATOR"||W==="RENDER")H=!0}}if(g||E==="IDENTIFIER"&&(w(A[1])||q)||H){let L=s("CALL_START","(",A),W=s("->","->",A);return W.newLine=!0,R.splice(d+1,0,L,W),_.push(o+1),3}else{let L=s(",",",",A),W=s("->","->",A);return W.newLine=!0,R.splice(d+1,0,L,W),3}}}if(E==="IDENTIFIER"&&y(A[1])&&O&&(O[0]==="OUTDENT"||O[0]==="TERMINATOR"))return R.splice(d+1,0,s("CALL_START","(",A),s("CALL_END",")",A)),3;return 1})};let n=e.prototype;n.isHtmlTag=function(s){let c=s.split("#")[0];return j1.has(c.toLowerCase())},n.isComponent=function(s){if(!s||typeof s!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(s)},n.collectTemplateClasses=function(s){let c=[],h=s;while(this.is(h,".")){let y=h[2];if(typeof y==="string"||y instanceof String)c.unshift(y.valueOf());h=h[1]}let o=typeof h==="string"?h:h instanceof String?h.valueOf():null;if(o===null)return{tag:null,classes:c,id:void 0,base:h};let[_,m]=o.split("#");if(!_)_="div";return{tag:_,classes:c,id:m,base:h}};let i=(s)=>typeof s==="string"?s:s instanceof String?s.valueOf():null,a=(s,c)=>{if(!(s instanceof String))return c;let h=new String(c);if(s.optional)h.optional=!0;if(s.bang)h.bang=!0;return h.optional||h.bang?h:c};n.addBodyRipSrcMarkers=function(s,c){if(typeof s!=="string"||!s)return s;let h=Array.isArray(c)&&c[0]==="block"?c.slice(1):Array.isArray(c)?[c]:[];if(h.length===0)return s;let o=(w)=>{if(w==null)return null;if(!Array.isArray(w))return w?.loc?.r??null;if(w.loc?.r)return w.loc.r;if(w[0]?.loc?.r)return w[0].loc.r;for(let b of w){if(b?.loc?.r)return b.loc.r;if(Array.isArray(b)){let D=o(b);if(D!=null)return D}}return null},_=h.map(o);if(_.every((w)=>w==null))return s;let m=s.split(`
|
|
1872
|
+
`),y=0;for(let w=0;w<m.length&&y<_.length;w++){let b=m[w].trim();if(!b)continue;if(b==="{"||b==="}"||b.startsWith("//"))continue;if(m[w].includes("@rip-src:")){y++;continue}if(_[y]!=null)m[w]=`${m[w]} // @rip-src:${_[y]}`;y++}return m.join(`
|
|
1873
|
+
`)},n.transformComponentMembers=function(s,c=new Set){let h=this._self;if(!Array.isArray(s)){let o=i(s);if(o&&c.has(o))return s;if(o&&this.reactiveMembers&&this.reactiveMembers.has(o))return[".",[".",h,o],a(s,"value")];if(o&&this.componentMembers&&this.componentMembers.has(o))return[".",h,a(s,o)];return s}if(s[0]==="."&&s[1]==="this"&&i(s[2])!=null){let o=s[2],_=i(o);if(this.reactiveMembers&&this.reactiveMembers.has(_))return[".",[".",h,_],a(o,"value")];return this._factoryMode?[".",h,o]:s}if(s[0]==="."||s[0]==="?.")return[s[0],this.transformComponentMembers(s[1]),s[2]];if(s[0]==="->"){let o=s[1],_=new Set(c);if(Array.isArray(o))for(let m of o){let y=i(Array.isArray(m)&&m[0]==="default"?m[1]:m);if(y)_.add(y)}return["=>",s[1],this.transformComponentMembers(s[2],_)]}if(s[0]==="object"||s[0]==="map-literal")return[s[0],...s.slice(1).map((o)=>{if(Array.isArray(o)&&o[0]==="...")return["...",this.transformComponentMembers(o[1],c)];if(Array.isArray(o)&&o.length>=2){let _=o[1],m=Array.isArray(_)?this.transformComponentMembers(_,c):_,y=this.transformComponentMembers(o[2],c);return[o[0],m,y]}return this.transformComponentMembers(o,c)})];if(s[0]==="block"||s[0]==="program"){let o=new Set(c),_=[s[0]];for(let m=1;m<s.length;m++){let y=s[m];if(Array.isArray(y)&&y[0]==="="){let w=i(y[1]);if(w&&!(this.reactiveMembers&&this.reactiveMembers.has(w))){_.push(["=",y[1],this.transformComponentMembers(y[2],o)]),o.add(w);continue}}_.push(this.transformComponentMembers(y,o))}return _}return s.map((o)=>this.transformComponentMembers(o,c))},n.emitComponent=function(s,c,h,o){let[,_]=c,m=this.is(_,"block")?_.slice(1):[],y=[],w=[],b=[],D=[],A=[],d=[],R=[],E=[],O=[],U=null,$=new Set,S=new Set;for(let K of m){if(!Array.isArray(K))continue;let[Y]=K;if(Y==="offer"){if(K=K[1],!Array.isArray(K))continue;Y=K[0];let F=G1(K[1]);if(F)E.push(F)}if(Y==="accept"){let F=typeof K[1]==="string"?K[1]:G1(K[1]);if(F)O.push(F),$.add(F),S.add(F)}else if(Y==="."&&K[1]==="this"&&G1(K)){let F=typeof K[2]==="string"||K[2]instanceof String?K[2].valueOf():null;if(F){let P=$2(K);y.push({name:F,value:void 0,isPublic:!0,type:K[2]?.type||null,required:!P,optional:P,srcLine:K.loc?.r}),$.add(F),S.add(F)}}else if(Y==="state"){let F=G1(K[1]);if(F)y.push({name:F,value:K[2],isPublic:i3(K[1]),type:h2(K[1]),optional:$2(K[1]),srcLine:K.loc?.r}),$.add(F),S.add(F)}else if(Y==="computed"){let F=G1(K[1]);if(F)w.push({name:F,expr:K[2],type:h2(K[1]),srcLine:K.loc?.r}),$.add(F),S.add(F)}else if(Y==="gate"){let F=G1(K[1]);if(F){let P=t6(K[2]);if(P.error)this.error(P.error,K);let M=null;if(P.keyExpr!==void 0){if(M=l6(P.keyExpr),M.error)this.error(M.error,K)}b.push({name:F,path:P.path,key:M,type:h2(K[1]),srcLine:K.loc?.r}),$.add(F),S.add(F)}}else if(Y==="readonly"){let F=G1(K[1]);if(F)D.push({name:F,value:K[2],isPublic:i3(K[1]),type:h2(K[1]),optional:$2(K[1]),srcLine:K.loc?.r}),$.add(F)}else if(Y==="="){let F=G1(K[1]);if(F)if(e3.has(F))d.push({name:F,value:K[2]});else{let P=K[2];if(Array.isArray(P)&&(P[0]==="->"||P[0]==="=>"))A.push({name:F,func:P}),$.add(F);else y.push({name:F,value:P,isPublic:i3(K[1]),type:h2(K[1]),optional:$2(K[1]),srcLine:K.loc?.r}),$.add(F),S.add(F)}}else if(Y==="effect")R.push(K);else if(Y==="render")U=K;else if(Y==="object")for(let F=1;F<K.length;F++){let P=K[F];if(!Array.isArray(P))continue;let[,M,Q]=P;if(typeof M==="string"&&e3.has(M))d.push({name:M,value:Q});else if(typeof M==="string")A.push({name:M,func:Q}),$.add(M)}}if(b.length>0){if(!this._gateDecls)this._gateDecls=[];for(let{path:K,key:Y,srcLine:F}of b)this._gateDecls.push({path:K,keyed:!!Y,line:(F??0)+1})}let g=new Map;for(let{name:K}of A)if(/^on[A-Z]/.test(K)&&!e3.has(K)){let Y=K[2].toLowerCase()+K.slice(3);if(r4.has(Y))g.set(Y,K)}let q=c[0]?.valueOf?.()??null,H=new Set;for(let{name:K,isPublic:Y}of y)if(Y)H.add(K);for(let{name:K,isPublic:Y}of D)if(Y)H.add(K);if(q)$.add("rest"),S.add("rest");let B=this.componentMembers,L=this.reactiveMembers,W=this._autoEventHandlers,e1=this._inheritsTag;if(this.componentMembers=$,this.reactiveMembers=S,this._autoEventHandlers=g.size>0?g:null,this._inheritsTag=q||null,this.options.stubComponents){let K=(I)=>I?I.replace(/::/g,":"):null,Y=[],F=this._componentTypeParams||"";Y.push(`class ${F}{`),Y.push(" declare _root: Element | null; declare app: any; declare router: any; declare params: Record<string, string>; declare query: Record<string, string>; declare children: any;");let P=new Set(d.map((I)=>I.name)),M=[];if(!P.has("beforeMount"))M.push("beforeMount?(): void;");if(!P.has("mounted"))M.push("mounted?(): void;");if(!P.has("beforeUnmount"))M.push("beforeUnmount?(): void;");if(!P.has("unmounted"))M.push("unmounted?(): void;");if(!P.has("onError"))M.push(`onError?(err: ${o4}): void;`);if(M.length)Y.push(" "+M.join(" "));Y.push(" emit(_name: string, _detail?: any): void {}");let Q=[];for(let{name:I,type:J,isPublic:v,required:V,optional:a1}of y){if(!v)continue;let s1=K(J),r1=a1??!V?"?":"";Q.push(`${I}${r1}: ${s1||"any"}`),Q.push(`__bind_${I}__?: Signal<${s1||"any"}>`)}for(let{name:I,type:J,isPublic:v}of D){if(!v)continue;let V=K(J);Q.push(`${I}?: ${V||"any"}`)}{let J=Q.length>0&&y.some((V)=>V.isPublic&&V.required&&!V.optional)?"":"?",v=Q.length>0?`{${Q.join("; ")}}`:"{}";if(q)v+=` & __RipProps<'${q}'>`;Y.push(` constructor(_props${J}: ${v}) {}`)}let n1=(I)=>{let J=I?.valueOf?.()??I;if(typeof J!=="string")return null;if(J==="true"||J==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(J))return"number";if(J.startsWith('"')||J.startsWith("'"))return"string";return null},p=(I)=>{if(!Array.isArray(I)){if(typeof I==="string"||I instanceof String){let v=I.valueOf();return v==="this"||S.has(v)}return!1}let J=I[0]?.valueOf?.()??I[0];if(J==="->"||J==="=>")return!1;return I.some(p)},i1=[];for(let{name:I,type:J,value:v,isPublic:V,optional:a1,srcLine:s1}of y){let r1=K(J)||n1(v),T=v===void 0||(v?.valueOf?.()??v)==="undefined",u1=r1?a1&&T?`${r1} | undefined`:r1:null,c1=s1!=null?` // @rip-src:${s1}`:"";if(!u1&&!V&&!T&&!p(v))i1.push({name:I,value:v,marker:c1});else Y.push((u1?` declare ${I}: Signal<${u1}>;`:` declare ${I}: Signal<any>;`)+c1)}if(q)Y.push(` declare rest: Signal<__RipProps<'${q}'>>;`);for(let{name:I,type:J,value:v}of D){let V=K(J)||n1(v);Y.push(V?` declare ${I}: ${V};`:` declare ${I}: any;`)}for(let{name:I,path:J,key:v,type:V,srcLine:a1}of b){let s1=K(V),r1=s1?`: Computed<${s1}>`:"",T=v?`this.app.data.${J}(${v.stubCode})`:`this.app.data.${J}`,X=a1!=null?` // @rip-src:${a1}`:"";Y.push(` ${I}${r1} = __computed(() => __ripGate(${T}));`+X)}for(let{name:I,expr:J,type:v}of w){let V=K(v),a1=V?`: Computed<${V}>`:"";if(this.is(J,"block")){let s1=this.transformComponentMembers(J),r1=this.emitFunctionBody(s1);Y.push(` ${I}${a1} = __computed(() => ${r1});`)}else{let s1=this.emitInComponent(J,"value");Y.push(` ${I}${a1} = __computed(() => ${s1});`)}}for(let{name:I,value:J,marker:v}of i1){let V=this.emitInComponent(J,"value");Y.push(` ${I} = __state(${V});`+v)}Y.push(" _init(props) {");for(let{name:I,value:J,isPublic:v,srcLine:V}of D){let a1=this.emitInComponent(J,"value"),s1=V!=null?` // @rip-src:${V}`:"";Y.push((v?` this.${I} = props.${I} ?? ${a1};`:` this.${I} = ${a1};`)+s1)}for(let{name:I,value:J,isPublic:v,required:V,type:a1,srcLine:s1}of y){if(i1.some((T)=>T.name===I))continue;let r1=s1!=null?` // @rip-src:${s1}`:"";if(v&&(V||J===void 0))Y.push(` this.${I} = __state(props.__bind_${I}__ ?? props.${I});`+r1);else if(v){let T=this.emitInComponent(J,"value");Y.push(` this.${I} = __state(props.__bind_${I}__ ?? props.${I} ?? ${T});`+r1)}else{let T=this.emitInComponent(J,"value");Y.push(` this.${I} = __state(${T});`+r1)}}for(let I of R){let J=I[2],v=this.containsAwait(J)?"async ":"";if(this.is(J,"block")){let V=this.transformComponentMembers(J),a1=this.emitFunctionBody(V);Y.push(` __effect(${v}() => ${a1});`)}else{let V=this.emitInComponent(J,"value");Y.push(` __effect(${v}() => { return ${V}; });`)}}Y.push(" }");let l1=new Map;for(let[I,J]of g)l1.set(J,I);if(U){let I=(J)=>{if(!Array.isArray(J))return;let v=J[0]?.valueOf?.()??J[0];if(typeof v==="string"&&v!=="object"&&v!=="switch"&&j1.has(v.split(/[.#]/)[0]))for(let V=1;V<J.length;V++){let a1=J[V],s1=this.is(a1,"object")?a1:null;if(!s1&&Array.isArray(a1)&&(a1[0]==="->"||a1[0]==="=>")&&this.is(a1[2],"block")){for(let r1=1;r1<a1[2].length;r1++)if(this.is(a1[2][r1],"object")){s1=a1[2][r1];break}}if(!s1)continue;for(let r1=1;r1<s1.length;r1++){let T=s1[r1];if(!Array.isArray(T)||T.length<2)continue;let[,X,u1]=T;if(Array.isArray(X)&&X[0]==="."&&X[1]==="this"&&Array.isArray(u1)&&u1[0]==="."&&u1[1]==="this"){let c1=typeof X[2]==="string"?X[2]:X[2]?.valueOf?.(),z=typeof u1[2]==="string"?u1[2]:u1[2]?.valueOf?.();if(c1&&z&&!l1.has(z))l1.set(z,c1)}}}for(let V=1;V<J.length;V++)I(J[V])};I(U)}for(let{name:I,func:J}of A)if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let[,v,V]=J;if((!v||Array.isArray(v)&&v.length===0)&&this.containsIt(V))v=["it"];let a1=Array.isArray(v)?v.map((u1)=>{let c1=this.formatParam(u1);if(u1?.type)c1+=`: ${u1.type}`;return c1}).join(", "):"",s1=l1.get(I);if(s1&&Array.isArray(v)&&v.length>0){let u1=v[0];if(!(u1?.type||u1 instanceof String&&u1.type)&&typeof(u1?.valueOf?.()??u1)==="string"){let z=u1?.valueOf?.()??u1;a1=a1.replace(z,`${z}: HTMLElementEventMap['${s1}']`)}}let r1=this.reactiveMembers?this.transformComponentMembers(V):V,T=this.containsAwait(V),X=this.emitFunctionBody(r1,v||[]);X=this.addBodyRipSrcMarkers(X,V),Y.push(` ${T?"async ":""}${I}(${a1}) ${X}`)}for(let{name:I,value:J}of d)if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let[,v,V]=J,a1=Array.isArray(v)?v.map((X)=>this.formatParam(X)).join(", "):"";if(I==="onError"&&Array.isArray(v)&&v.length===1){let X=v[0];if((typeof X==="string"||X instanceof String)&&!t(X,"type"))a1=`${X.valueOf()}: ${o4}`}let s1=this.reactiveMembers?this.transformComponentMembers(V):V,r1=this.containsAwait(V),T=this.emitFunctionBody(s1,v||[]);T=this.addBodyRipSrcMarkers(T,V),Y.push(` ${r1?"async ":""}${I}(${a1}) ${T}`)}if(U){let I=[],J=0,v=this.options.source?.split(`
|
|
1874
|
+
`),V=(T)=>typeof T==="string"&&/^["'`]\//.test(T)?`__ripRoute(${T})`:T,a1=(T)=>{let X=[],u1=[];for(let c1 of T){let z=null;if(this.is(c1,"object"))z=c1;else if(Array.isArray(c1)&&(c1[0]==="->"||c1[0]==="=>")&&this.is(c1[2],"block")){for(let Z=1;Z<c1[2].length;Z++)if(this.is(c1[2][Z],"object")){z=c1[2][Z];break}}if(z)for(let Z=1;Z<z.length;Z++){let C=z[Z],[,k,t1]=C,x=C.loc?.r??z.loc?.r;if(Array.isArray(k)&&k[0]==="."&&k[1]==="this"){try{let f1=this.emitInComponent(t1,"value");u1.push({code:f1,srcLine:x})}catch{}continue}if(typeof k==="string"&&k.startsWith("@")){try{let f1=this.emitInComponent(t1,"value");u1.push({code:f1,srcLine:x})}catch{}continue}if(typeof k==="string")if(k.startsWith("__bind_")&&k.endsWith("__")){let f1=typeof t1==="string"&&this.reactiveMembers?.has(t1)?`this.${t1}`:this.emitInComponent(t1,"value");X.push({code:`${k}: ${f1}`,srcLine:x})}else{let f1=this.emitInComponent(t1,"value"),_1=k==="href"?V(f1):f1;X.push({code:`${k}: ${_1}`,srcLine:x})}}}return X.sideExprs=u1,X},s1=(T,X)=>{let u1=[],c1=(z)=>{if(X!=="a")return z;if(typeof z!=="string")return z;if(z.length<2)return z;if(z[0]!=="`")return z;if(z[1]!=="/")return z;return`__ripRoute(${z})`};for(let z of T){let Z=null;if(this.is(z,"object"))Z=z;else if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")&&this.is(z[2],"block")){for(let C=1;C<z[2].length;C++)if(this.is(z[2][C],"object")){Z=z[2][C];break}}if(Z)for(let C=1;C<Z.length;C++){let k=Z[C];if(!Array.isArray(k)||k.length<2)continue;let[,t1,x]=k,f1=k.loc?.r??Z.loc?.r;if(Array.isArray(t1)&&t1[0]==="."&&t1[1]==="this"){let _1=typeof t1[2]==="string"?t1[2]:t1[2]?.valueOf?.();if(!_1)continue;let b1=_1.split(".")[0],U1=this.emitInComponent(x,"value");if(Array.isArray(x)&&(x[0]==="->"||x[0]==="=>")){let y1=x[1]?.[0],M1=typeof y1==="string"?y1:y1?.valueOf?.();if(M1&&!(y1&&y1.type)&&/^[A-Za-z_$][\w$]*$/.test(M1)){let R1=`RipEvent<HTMLElementEventMap['${b1}'], __RipElementMap['${X}']>`;U1=U1[0]==="("?U1.replace(new RegExp("^\\(\\s*"+M1+"\\b"),`(${M1}: ${R1}`):U1.replace(new RegExp("^"+M1+"\\b"),`(${M1}: ${R1})`)}}u1.push({code:`'@${b1}': ${U1}`,srcLine:f1})}else if(typeof t1==="string"){if(t1==="key"){let _1=this.emitInComponent(x,"value"),b1=f1!=null?` // @rip-src:${f1}`:"";I.push(` (${_1});${b1}`);continue}if(t1.startsWith("__bind_")&&t1.endsWith("__")){let _1=t1.slice(7,-2),b1=this.emitInComponent(x,"value");u1.push({code:`${_1}: ${b1}`,srcLine:f1})}else{let _1=this.emitInComponent(x,"value"),b1=t1==="href"?c1(_1):_1;u1.push({code:`${t1}: ${b1}`,srcLine:f1})}}}}return u1},r1=(T)=>{if(!Array.isArray(T))return;let X=T[0]?.valueOf?.()??T[0];if(Array.isArray(X)&&X[0]==="."){let z=[],Z=(C)=>{if(typeof C==="string")return z.push(C),!0;if(Array.isArray(C)&&C[0]==="."&&z.length===0){if(!Z(C[1]))return!1;if(typeof C[2]!=="string"||!/^[\w-]+$/.test(C[2]))return!1;return z.push(".",C[2]),!0}return!1};if(Z(X)&&z.length>=3&&/^[a-z][\w-]*$/.test(z[0])){let C=z.join(""),k=[C];for(let x=1;x<T.length;x++)k.push(T[x]);if(T.loc)k.loc=T.loc;k._astNode=T;let t1=(x)=>{if(Array.isArray(x)&&x[0]==="."){if(x.loc)delete x.loc;t1(x[1])}};t1(X),T=k,X=C}}if(X==="object")return;if(X==="if"||X==="unless"){let z=T[1];if(z!=null){let Z=this.emitInComponent(z,"value"),C=T.loc?.r,k=C!=null?` // @rip-src:${C}`:"",t1=X==="unless"?`!(${Z})`:Z;if(I.push(` if (${t1}) {${k}`),T[2]!=null)r1(T[2]);let x=T.slice(3).filter((f1)=>f1!=null);if(x.length){I.push(" } else {");for(let f1 of x)r1(f1)}I.push(" }");return}}else if(X==="?:"){let z=this.emitInComponent(T,"value"),Z=T.loc?.r,C=Z!=null?` // @rip-src:${Z}`:"";I.push(` ${z};${C}`);return}else if(X==="switch"){let z=T[1];if(z!=null){let Z=this.emitInComponent(z,"value"),C=T.loc?.r,k=C!=null?` // @rip-src:${C}`:"";I.push(` ${Z};${k}`)}}else if(X==="for-in"||X==="for-of"||X==="for-as"){let z=T[1],Z=T[2];if(Z!=null){let C=this.emitInComponent(Z,"value"),k=T.loc?.r,t1=k!=null?` // @rip-src:${k}`:"",x;if(Array.isArray(z))if(z.length===1){let f1=z[0];x=Array.isArray(f1)?this.emitDestructuringPattern(f1):String(f1)}else if(X==="for-of")x=`[${z.map((f1)=>String(f1)).join(", ")}]`;else x=String(z[0]);else x=String(z);if(X==="for-of")I.push(` for (const ${x} of Object.entries(${C})) {${t1}`);else I.push(` for (const ${x} of ${C}) {${t1}`);for(let f1=3;f1<T.length;f1++)if(T[f1]!=null)r1(T[f1]);I.push(" }");return}}else if(X==="__text__"){let z=T[1];if(z!=null){let Z=this.emitInComponent(z,"value"),C=T.loc?.r,k=C!=null?` // @rip-src:${C}`:"";I.push(` ${Z};${k}`)}return}else if(X==="str"){try{let z=this.emitInComponent(T,"value"),Z=T.loc?.r,C=Z!=null?` // @rip-src:${Z}`:"";I.push(` ${z};${C}`)}catch{}return}else if(X==="."||X==="?."){let z=T;while(Array.isArray(z)&&(z[0]==="."||z[0]==="?."))z=z[1];let Z=typeof z==="string"?z:z?.valueOf?.();if(typeof Z==="string"&&!this.isHtmlTag(Z)&&!e.GENERATORS[Z])try{let C=this.emitInComponent(T,"value"),k=T.loc?.r,t1=k!=null?` // @rip-src:${k}`:"";I.push(` ${C};${t1}`)}catch{}return}let u1=(z,Z,C)=>{if(typeof z!=="string"||!/^[a-z][\w-]*$/.test(z))return;if(e.GENERATORS[z])return;if(z==="null"||z==="undefined"||z==="true"||z==="false")return;let k=Z.loc?.r,t1=null;if(k!=null&&v){let f1=new RegExp(`\\b${z}\\b`,"g");for(let _1=k;_1<v.length;_1++){let b1=v[_1];if(!b1)continue;let U1=_1===Z.loc.r?Z.loc.c+1:0;f1.lastIndex=U1;let y1,M1=-1;while((y1=f1.exec(b1))!==null){let R1=y1.index>0?b1[y1.index-1]:"";if(R1==="."||R1==="#")continue;M1=y1.index;break}if(M1>=0){k=_1,t1=M1;break}}}let x=k!=null?` // @rip-src:${k}`:"";if(k!=null&&t1!=null){let f1=Z._astNode||Z;if(!f1._anchors)f1._anchors=[];f1._anchors.push({name:z,origLine:k,origCol:t1})}if(this.componentMembers&&this.componentMembers.has(z))I.push(` this.${z};${x}`);else if(C)I.push(` ${z};${x}`);else I.push(` __ripEl('${z}');${x}`)},c1=typeof X==="string"&&/^[a-z][\w-]*(?:[.#][\w-]+)*$/.test(X)&&!e.GENERATORS[X]&&j1.has(X.split(/[.#]/)[0]);if(X==="block")for(let z=1;z<T.length;z++)u1(T[z],T,!1);else if(c1){for(let z=1;z<T.length;z++)u1(T[z],T,!0);for(let z=1;z<T.length;z++){let Z=T[z];if(!Array.isArray(Z))continue;let C=Z[0]?.valueOf?.()??Z[0];if(C==="object"||C==="block"||C==="__text__")continue;if(typeof C==="string"){if(/^[A-Z]/.test(C))continue;if(j1.has(C.split(/[.#]/)[0]))continue;if(/^[a-z][\w-]*$/.test(C)&&!e.GENERATORS[C])continue;if(/^(if|unless|switch|for-in|for-of|for-as|while|until|loop|loop-n|try|throw|break|continue|break-if|continue-if|control|when|return|def|->|=>|class|enum|state|computed|readonly|effect|=|program)$/.test(C))continue}try{let k=this.emitInComponent(Z,"value"),t1=Z.loc?.r??T.loc?.r,x=t1!=null?` // @rip-src:${t1}`:"";I.push(` ${k};${x}`)}catch{}}}for(let z=1;z<T.length;z++)r1(T[z]);if(typeof X==="string"&&/^[A-Z]/.test(X)){let z=a1(T.slice(1)),Z=`_${J++}`,C=`ConstructorParameters<typeof ${X}>[0] & {}`;if(z.length===0){let k=T.loc?.r;I.push(` const ${Z}: ${C} = {};`+(k!=null?` // @rip-src:${k}`:""))}else if(z.length===1){let k=T.loc?.r??z[0].srcLine;I.push(` const ${Z}: ${C} = {${z[0].code}};`+(k!=null?` // @rip-src:${k}`:""))}else{let k=T.loc?.r;if(new Set(z.map((x)=>x.srcLine).filter((x)=>x!=null)).size<=1){let x=z[0].srcLine??k;I.push(` const ${Z}: ${C} = {${z.map((f1)=>f1.code).join(", ")}};`+(x!=null?` // @rip-src:${x}`:""))}else{I.push(` const ${Z}: ${C} = {`+(k!=null?` // @rip-src:${k}`:""));for(let x of z)I.push(` ${x.code},`+(x.srcLine!=null?` // @rip-src:${x.srcLine}`:""));I.push(" };")}}if(z.sideExprs)for(let k of z.sideExprs)I.push(` ${k.code};`+(k.srcLine!=null?` // @rip-src:${k.srcLine}`:""))}else if(typeof X==="string"&&!e.GENERATORS[X]&&(j1.has(X.split(/[.#]/)[0])||/^[a-z][\w-]*$/.test(X)&&T.length>1)){let z=X.split(/[.#]/)[0],Z=s1(T.slice(1),z),C=T.loc?.r,k=C!=null?` // @rip-src:${C}`:"";if(Z.length===0)I.push(` __ripEl('${z}');${k}`);else if(Z.length===1){let t1=Z[0].srcLine??C,x=t1!=null?` // @rip-src:${t1}`:"";I.push(` __ripEl('${z}', {${Z[0].code}});${x}`)}else if(new Set(Z.map((x)=>x.srcLine).filter((x)=>x!=null)).size<=1){let x=Z[0].srcLine??C,f1=x!=null?` // @rip-src:${x}`:"";I.push(` __ripEl('${z}', {${Z.map((_1)=>_1.code).join(", ")}});${f1}`)}else{I.push(` __ripEl('${z}', {${k}`);for(let x of Z)I.push(` ${x.code},`+(x.srcLine!=null?` // @rip-src:${x.srcLine}`:""));I.push(" });")}}};if(r1(U),I.length>0){Y.push(" _render() {");for(let T of I)Y.push(T);Y.push(" }")}}return Y.push("}"),this.componentMembers=B,this.reactiveMembers=L,this._autoEventHandlers=W,this._inheritsTag=e1,Y.join(`
|
|
1875
|
+
`)}this.usesTemplates=!0,this.usesReactivity=!0;let N=[],o1="";if(N.push("class extends __Component {"),b.length>0){let K=b.map(({path:Y,key:F})=>F?`{ path: '${Y}', key: (params, query) => ${F.code} }`:`'${Y}'`);N.push(` static __gates = [${K.join(", ")}];`)}N.push(" _init(props) {");for(let{name:K,path:Y,key:F}of b)N.push(F?` this.${K} = __gateBind(this, '${Y}', (params, query) => ${F.code});`:` this.${K} = __gateBind(this, '${Y}');`);for(let{name:K,value:Y,isPublic:F}of D){let P=this.emitInComponent(Y,"value");N.push(F?` this.${K} = props.${K} ?? ${P};`:` this.${K} = ${P};`)}for(let K of O)N.push(` this.${K} = getContext('${K}');`);for(let{name:K,value:Y,isPublic:F,required:P}of y)if(F&&(P||Y===void 0))N.push(` this.${K} = __state(props.__bind_${K}__ ?? props.${K});`);else if(F){let M=this.emitInComponent(Y,"value");N.push(` this.${K} = __state(props.__bind_${K}__ ?? props.${K} ?? ${M});`)}else{let M=this.emitInComponent(Y,"value");N.push(` this.${K} = __state(${M});`)}if(q){if(N.push(" this._rest = {};"),N.push(" for (const __k in props) {"),H.size>0){let K=[...H].map((Y)=>`__k !== '${Y}'`).join(" && ");N.push(` if (${K} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else N.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");N.push(" }"),N.push(" this.rest = __state(this._rest);")}for(let{name:K,expr:Y}of w)if(this.is(Y,"block")){let F=this.transformComponentMembers(Y),P=this.emitFunctionBody(F);N.push(` this.${K} = __computed(() => ${P});`)}else{let F=this.emitInComponent(Y,"value");N.push(` this.${K} = __computed(() => ${F});`)}for(let K of E)N.push(` setContext('${K}', this.${K});`);for(let K of R){let Y=K[2],F=this.containsAwait(Y)?"async ":"";if(this.is(Y,"block")){let P=this.transformComponentMembers(Y),M=this.emitFunctionBody(P);N.push(` __effect(${F}() => ${M});`)}else{let P=this.emitInComponent(Y,"value");N.push(` __effect(${F}() => { return ${P}; });`)}}if(N.push(" }"),q)N.push(" _setRestProp(key, value) {"),N.push(" if (key.startsWith('__bind_')) return;"),N.push(" this._rest || (this._rest = {});"),N.push(" if (value == null) delete this._rest[key];"),N.push(" else this._rest[key] = value;"),N.push(" this.rest.touch();"),N.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),N.push(" }"),N.push(" _applyRestToInheritedEl() {"),N.push(" if (!this._inheritedEl || !this._rest) return;"),N.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),N.push(" }"),N.push(" _applyInheritedProp(el, key, value) {"),N.push(" if (!el || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return;"),N.push(" if (key[0] === '@') {"),N.push(" const event = key.slice(1).split('.')[0];"),N.push(" this._restHandlers || (this._restHandlers = {});"),N.push(" const prev = this._restHandlers[key];"),N.push(" if (prev) el.removeEventListener(event, prev);"),N.push(" if (typeof value === 'function') {"),N.push(" const next = (e) => __batch(() => value(e));"),N.push(" this._restHandlers[key] = next;"),N.push(" el.addEventListener(event, next);"),N.push(" } else {"),N.push(" delete this._restHandlers[key];"),N.push(" }"),N.push(" return;"),N.push(" }"),N.push(" if (key === 'class' || key === 'className') {"),N.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),N.push(" else el.className = __clsx(value);"),N.push(" return;"),N.push(" }"),N.push(" if (key === 'style') {"),N.push(" if (value == null) { el.removeAttribute('style'); return; }"),N.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),N.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),N.push(" }"),N.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),N.push(" el[key] = value ?? '';"),N.push(" return;"),N.push(" }"),N.push(" if (key in el && !key.includes('-')) {"),N.push(" el[key] = value;"),N.push(" return;"),N.push(" }"),N.push(" if (value == null || value === false) {"),N.push(" el.removeAttribute(key);"),N.push(" return;"),N.push(" }"),N.push(" if (value === true) {"),N.push(" el.setAttribute(key, '');"),N.push(" return;"),N.push(" }"),N.push(" el.setAttribute(key, value);"),N.push(" }");for(let{name:K,func:Y}of A)if(Array.isArray(Y)&&(Y[0]==="->"||Y[0]==="=>")){let[,F,P]=Y;if((!F||Array.isArray(F)&&F.length===0)&&this.containsIt(P))F=["it"];let M=Array.isArray(F)?F.map((i1)=>this.formatParam(i1)).join(", "):"",Q=this.reactiveMembers?this.transformComponentMembers(P):P,n1=this.containsAwait(P),p=this.emitFunctionBody(Q,F||[]);N.push(` ${n1?"async ":""}${K}(${M}) ${p}`)}for(let{name:K,value:Y}of d)if(Array.isArray(Y)&&(Y[0]==="->"||Y[0]==="=>")){let[,F,P]=Y,M=Array.isArray(F)?F.map((i1)=>this.formatParam(i1)).join(", "):"",Q=this.reactiveMembers?this.transformComponentMembers(P):P,n1=this.containsAwait(P),p=this.emitFunctionBody(Q,F||[]);N.push(` ${n1?"async ":""}${K}(${M}) ${p}`)}if(U){let K=U[1],Y=this.buildRender(K);if(Y.blockFactories.length>0)o1=Y.blockFactories.join(`
|
|
1043
1876
|
|
|
1044
1877
|
`)+`
|
|
1045
1878
|
|
|
1046
|
-
`;
|
|
1047
|
-
${
|
|
1879
|
+
`;N.push(" _create() {");for(let F of Y.createLines)N.push(` ${F}`);if(N.push(` return ${Y.rootVar};`),N.push(" }"),Y.setupLines.length>0){N.push(" _setup() {");for(let F of Y.setupLines)N.push(` ${F}`);N.push(" }")}}if(N.push("}"),this.componentMembers=B,this.reactiveMembers=L,this._autoEventHandlers=W,this._inheritsTag=e1,o1)return`(() => {
|
|
1880
|
+
${o1}return ${N.join(`
|
|
1048
1881
|
`)};
|
|
1049
|
-
})()`;return
|
|
1050
|
-
`)},u.emitInComponent=function(h,A){if(typeof h==="string"&&this.reactiveMembers&&this.reactiveMembers.has(h))return`${this._self}.${h}.value`;if(typeof h==="string"&&this.componentMembers&&this.componentMembers.has(h))return`${this._self}.${h}`;if(Array.isArray(h)&&this.reactiveMembers){let R=this.transformComponentMembers(h);return this.emit(R,A)}return this.emit(h,A)},u.emitRender=function(h,A,R,U){this.error("render blocks can only be used inside a component",U)},u.emitOffer=function(h,A,R,U){this.error("offer can only be used inside a component",U)},u.emitAccept=function(h,A,R,U){this.error("accept can only be used inside a component",U)},u.buildRender=function(h){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._renderLocalScope=new Set,this._renderTopLocals=new Set,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let A=this.is(h,"block")?h.slice(1):[h],R=A.reduce(($,z)=>$+(this._isRenderBinding(z)?0:1),0),U;if(A.length===0||A.length===1&&A[0]==="null")U="null";else if(R===0){for(let $ of A)this.emitNode($);U=this.newElementVar("empty"),this._createLines.push(`${U} = document.createComment('');`)}else if(R===1){this._pendingAutoWire=!!this._autoEventHandlers;let $=null;for(let z of A){let M=this.emitNode(z);if(M!=null)$=M}this._pendingAutoWire=!1,U=$}else{U=this.newElementVar("frag"),this._createLines.push(`${U} = document.createDocumentFragment();`);let $=[];for(let z of A){let M=this.emitNode(z);if(M==null)continue;this._createLines.push(`${U}.appendChild(${M});`),$.push(M)}this._fragChildren.set(U,$)}if(this._renderTopLocals.size>0){let $=`let ${[...this._renderTopLocals].join(", ")};`;this._createLines.unshift($)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:U}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(h="el"){let A=`_${h}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(A);return this._factoryMode?A:`this.${A}`},u.newTextVar=function(){let h=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(h);return this._factoryMode?h:`this.${h}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(h){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${h} }, {skipRegister: true}));`);else this._setupLines.push(`__effect(() => { ${h} });`)};let w=(h)=>typeof h==="string"&&/^[A-Za-z_$][\w$]*$/.test(h),D=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","?=","??="]);u._isRenderBinding=function(h){return Array.isArray(h)&&D.has(h[0])&&w(h[1])},u._addRenderLocal=function(h){if(this._renderLocalScope)this._renderLocalScope.add(h)},u._isRenderLocal=function(h){if(!h||typeof h!=="string")return!1;if(this._renderLocalScope&&this._renderLocalScope.has(h))return!0;if(this._loopVarStack){for(let A of this._loopVarStack)if(A.itemVar===h||A.indexVar===h)return!0}return!1},u.emitNode=function(h){if(this._isRenderBinding(h)){let[M,F,H]=h,Q=this.emitInComponent(H,"value");if(M==="=")(this._factoryMode?this._factoryVars:this._renderTopLocals).add(F),this._addRenderLocal(F);return this._createLines.push(`${F} ${M} ${Q};`),null}if(typeof h==="string"||h instanceof String){let M=h.valueOf();if(M.startsWith('"')||M.startsWith("'")||M.startsWith("`")){let W=this.newTextVar();return this._createLines.push(`${W} = document.createTextNode(${M});`),W}if(this.reactiveMembers&&this.reactiveMembers.has(M)){let W=this.newTextVar();return this._createLines.push(`${W} = document.createTextNode('');`),this._pushEffect(`${W}.data = ${this._self}.${M}.value;`),W}if(this._isRenderLocal(M)){let W=this.newTextVar();return this._createLines.push(`${W} = document.createTextNode(String(${M}));`),W}if(M==="slot"&&this.componentMembers){let W=this._self,K=this.newElementVar("slot");return this._createLines.push(`${K} = ${W}.children instanceof Node ? ${W}.children : (${W}.children != null ? document.createTextNode(String(${W}.children)) : document.createComment(''));`),K}let[F,H]=M.split("#"),Q=this.newElementVar(),O=F||"div";if(G1.has(O)||this._svgDepth>0)this._createLines.push(`${Q} = document.createElementNS('${G2}', '${O}');`);else this._createLines.push(`${Q} = document.createElement('${O}');`);if(H)this._createLines.push(`${Q}.id = '${H}';`);return this._bindInheritedTarget(O,Q),Q}if(!Array.isArray(h)){let M=this.newElementVar("c");return this._createLines.push(`${M} = document.createComment('unknown');`),M}let[A,...R]=h,U=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(U&&this.isComponent(U))return this.emitChildComponent(U,R);if(U==="slot"&&this.componentMembers){let M=this._self,F=this.newElementVar("slot");return this._createLines.push(`${F} = ${M}.children instanceof Node ? ${M}.children : (${M}.children != null ? document.createTextNode(String(${M}.children)) : document.createComment(''));`),F}if(U==="switch"){let M=R[0],F=R[1]||[],Q=R[2]||null;for(let W=F.length-1;W>=0;W--){let[,K,Y]=F[W],q;if(M===null)q=K.length===1?K[0]:K.reduce((y,Z)=>y?["||",y,Z]:Z,null);else q=K.length===1?["==",M,K[0]]:K.map((y)=>["==",M,y]).reduce((y,Z)=>y?["||",y,Z]:Z,null);Q=["if",q,Y,Q]}if(Q){if(Array.isArray(Q)&&Q[0]==="if")return this.emitConditional(Q);return this.emitTemplateBlock(Q)}let O=this.newElementVar("c");return this._createLines.push(`${O} = document.createComment('switch');`),O}if(U&&this.isHtmlTag(U)&&!c(A,"text")&&!this._isRenderLocal(U)){let[M,F]=U.split("#");return this.emitTag(M||"div",[],R,F)}if(U==="."){let[,M,F]=h;if(M==="this"&&typeof F==="string"){let q=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(F)){let Z=this.newTextVar();return this._createLines.push(`${Z} = document.createTextNode('');`),this._pushEffect(`${Z}.data = ${q}.${F}.value;`),Z}let y=this.newElementVar("slot");return this._createLines.push(`${y} = ${q}.${F} instanceof Node ? ${q}.${F} : (${q}.${F} != null ? document.createTextNode(String(${q}.${F})) : document.createComment(''));`),y}let{tag:H,classes:Q,id:O,base:W}=this.collectTemplateClasses(h);if(!c(W,"text")&&H&&this.isHtmlTag(H)&&!this._isRenderLocal(H))return this.emitTag(H,Q,[],O);let K=this.newTextVar(),Y=this.emitInComponent(h,"value");return this._createLines.push(`${K} = document.createTextNode(String(${Y}));`),K}if(Array.isArray(A)){if(Array.isArray(A[0])&&A[0][0]==="."&&(A[0][2]==="__clsx"||A[0][2]instanceof String&&A[0][2].valueOf()==="__clsx")){let Q=A[0][1],O=A.slice(1);if(Array.isArray(Q)){let{tag:K,classes:Y,id:q}=this.collectTemplateClasses(Q);if(K){let y=Y.map((Z)=>`"${Z}"`);return this.emitDynamicTag(K,O,R,y,q)}}let W=typeof Q==="string"?Q:Q.valueOf();return this.emitDynamicTag(W,O,R)}let{tag:M,classes:F,id:H}=this.collectTemplateClasses(A);if(M&&this.isHtmlTag(M)&&!this._isRenderLocal(M)){if(F.length>0&&F[F.length-1]==="__clsx"){let O=F.slice(0,-1).map((W)=>`"${W}"`);return this.emitDynamicTag(M,R,[],O,H)}return this.emitTag(M,F,R,H)}}if(U==="->"||U==="=>")return this.emitTemplateBlock(R[1]);if(U==="if")return this.emitConditional(h);if(U==="for"||U==="for-in"||U==="for-of"||U==="for-as")return this.emitTemplateLoop(h);if(U==="__text__"){let M=R[0]??"undefined",F=this.newTextVar(),H=this.emitInComponent(M,"value");if(this.hasReactiveDeps(M))this._createLines.push(`${F} = document.createTextNode('');`),this._pushEffect(`${F}.data = String(${H});`);else this._createLines.push(`${F} = document.createTextNode(String(${H}));`);return F}let $=this.newTextVar(),z=this.emitInComponent(h,"value");if(this.hasReactiveDeps(h))this._createLines.push(`${$} = document.createTextNode('');`),this._pushEffect(`${$}.data = ${z};`);else this._createLines.push(`${$} = document.createTextNode(String(${z}));`);return $},u.appendChildren=function(h,A){for(let R of A)if(this.is(R,"->")||this.is(R,"=>")){let U=R[2];if(this.is(U,"block"))for(let $ of U.slice(1))if(this.is($,"object"))this.emitAttributes(h,$);else{let z=this.emitNode($);if(z==null)continue;this._createLines.push(`${h}.appendChild(${z});`)}else if(U){let $=this.emitNode(U);if($!=null)this._createLines.push(`${h}.appendChild(${$});`)}}else if(this.is(R,"object"))this.emitAttributes(h,R);else if(typeof R==="string"||R instanceof String){let U=R.valueOf(),$=U.split(/[#.]/)[0];if(!this._isRenderLocal($)&&(this.isHtmlTag($||"div")||this.isComponent($))){let z=this.emitNode(R);this._createLines.push(`${h}.appendChild(${z});`)}else{let z=this.newTextVar();if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))this._createLines.push(`${z} = document.createTextNode(${U});`);else if(this.reactiveMembers&&this.reactiveMembers.has(U))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${this._self}.${U}.value;`);else if(this.componentMembers&&this.componentMembers.has(U))this._createLines.push(`${z} = document.createTextNode(String(${this._self}.${U}));`);else this._createLines.push(`${z} = document.createTextNode(${this.emitInComponent(R,"value")});`);this._createLines.push(`${h}.appendChild(${z});`)}}else if(R){let U=this.emitNode(R);if(U!=null)this._createLines.push(`${h}.appendChild(${U});`)}},u._claimAutoWire=function(h){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=h,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(h,A){if(!A)return;for(let[R,U]of this._autoEventHandlers)if(!this._autoWireExplicit.has(R))this._createLines.push(`${h}.addEventListener('${R}', (e) => __batch(() => ${this._self}.${U}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(h,A){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(h!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${A};`),this._createLines.push("this._applyRestToInheritedEl();")},u.emitTag=function(h,A,R,U){let $=this.newElementVar(),z=G1.has(h)||this._svgDepth>0;if(z)this._createLines.push(`${$} = document.createElementNS('${G2}', '${h}');`);else this._createLines.push(`${$} = document.createElement('${h}');`);if(U)this._createLines.push(`${$}.id = '${U}';`);if(this._bindInheritedTarget(h,$),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${$}.setAttribute('data-part', '${this._componentName}');`);let M=this._claimAutoWire($),F=this._pendingClassArgs,H=this._pendingClassEl;if(A.length>0)this._pendingClassArgs=[`'${A.join(" ")}'`],this._pendingClassEl=$;if(h==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren($,R),h==="svg")this._svgDepth--;if(A.length>0){if(this._pendingClassArgs.length===1)if(z)this._createLines.push(`${$}.setAttribute('class', '${A.join(" ")}');`);else this._createLines.push(`${$}.className = '${A.join(" ")}';`);else{let Q=this._pendingClassArgs.join(", ");if(z)this._pushEffect(`${$}.setAttribute('class', __clsx(${Q}));`);else this._pushEffect(`${$}.className = __clsx(${Q});`)}this._pendingClassArgs=F,this._pendingClassEl=H}return this._emitAutoWire($,M),$},u.emitDynamicTag=function(h,A,R,U,$){let z=this.newElementVar();if(G1.has(h)||this._svgDepth>0)this._createLines.push(`${z} = document.createElementNS('${G2}', '${h}');`);else this._createLines.push(`${z} = document.createElement('${h}');`);if($)this._createLines.push(`${z}.id = '${$}';`);this._bindInheritedTarget(h,z);let M=this._claimAutoWire(z),F=[...U||[],...A.map((O)=>this.emitInComponent(O,"value"))],H=this._pendingClassArgs,Q=this._pendingClassEl;if(this._pendingClassArgs=F,this._pendingClassEl=z,h==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(z,R),h==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let O=this._pendingClassArgs.join(", ");if(G1.has(h)||this._svgDepth>0)this._pushEffect(`${z}.setAttribute('class', __clsx(${O}));`);else this._pushEffect(`${z}.className = __clsx(${O});`)}return this._pendingClassArgs=H,this._pendingClassEl=Q,this._emitAutoWire(z,M),z},u.emitAttributes=function(h,A){let R=o5(A.slice(1));for(let U=1;U<A.length;U++){let[,$,z]=A[U];if(this.is($,".")&&$[1]==="this"){let M=$[2];if(this._autoWireExplicit&&this._autoWireEl===h)this._autoWireExplicit.add(M);if(typeof z==="string"&&this.componentMembers?.has(z))this._createLines.push(`${h}.addEventListener('${M}', (e) => __batch(() => ${this._self}.${z}(e)));`);else{let F=this.emitInComponent(z,"value");this._createLines.push(`${h}.addEventListener('${M}', (e) => __batch(() => (${F})(e)));`)}continue}if(typeof $==="string"||$ instanceof String){if($.startsWith('"')&&$.endsWith('"'))$=$.slice(1,-1);if($==="class"||$==="className"){let F=this.emitInComponent(z,"value");if(this._pendingClassArgs&&this._pendingClassEl===h)this._pendingClassArgs.push(F);else if(this.hasReactiveDeps(z))if(this._svgDepth>0)this._pushEffect(`${h}.setAttribute('class', __clsx(${F}));`);else this._pushEffect(`${h}.className = __clsx(${F});`);else if(this._svgDepth>0)this._createLines.push(`${h}.setAttribute('class', ${F});`);else this._createLines.push(`${h}.className = ${F};`);continue}if($==="__transition__"){let F=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${F}";`);continue}if($==="ref"){let F=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${F} = ${h};`);continue}if($.startsWith(O3)&&$.endsWith(W3)){let F=$.slice(O3.length,-W3.length),H=this.emitInComponent(z,"value"),Q,O;if(F==="checked")Q="change",O="e.target.checked";else Q="input",O=R==="number"||R==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${h}.${F} = ${H};`);let W=`${H} = ${O}`,K=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(K)W+=`; ${this._self}.${K}.touch?.()`;this._createLines.push(`${h}.addEventListener('${Q}', (e) => { ${W}; });`);continue}let M=this.emitInComponent(z,"value");if(($==="value"||$==="checked")&&this.hasReactiveDeps(z)){this._pushEffect(`${h}.${$} = ${M};`);continue}if($==="innerHTML"||$==="textContent"||$==="innerText")if(this.hasReactiveDeps(z))this._pushEffect(`${h}.${$} = ${M};`);else this._createLines.push(`${h}.${$} = ${M};`);else if(t5.has($))if(this.hasReactiveDeps(z))this._pushEffect(`${h}.toggleAttribute('${$}', !!${M});`);else this._createLines.push(`if (${M}) ${h}.setAttribute('${$}', '');`);else if(this.hasReactiveDeps(z))if(Array.isArray(z)&&z[0]==="presence")this._pushEffect(`{ const __v = ${M}; __v == null ? ${h}.removeAttribute('${$}') : ${h}.setAttribute('${$}', __v); }`);else this._pushEffect(`${h}.setAttribute('${$}', ${M});`);else if(Array.isArray(z)&&z[0]==="presence")this._createLines.push(`{ const __v = ${M}; if (__v != null) ${h}.setAttribute('${$}', __v); }`);else this._createLines.push(`${h}.setAttribute('${$}', ${M});`)}}},u.emitTemplateBlock=function(h){if(!Array.isArray(h)||h[0]!=="block"){let z=this.emitNode(h);if(z!=null)return z;let M=this.newElementVar("empty");return this._createLines.push(`${M} = document.createComment('');`),M}let A=h.slice(1);if(A.length===0){let z=this.newElementVar("empty");return this._createLines.push(`${z} = document.createComment('');`),z}let R=A.reduce((z,M)=>z+(this._isRenderBinding(M)?0:1),0);if(R===0){for(let M of A)this.emitNode(M);let z=this.newElementVar("empty");return this._createLines.push(`${z} = document.createComment('');`),z}if(R===1){let z=null;for(let M of A){let F=this.emitNode(M);if(F!=null)z=F}return z}let U=this.newElementVar("frag");this._createLines.push(`${U} = document.createDocumentFragment();`);let $=[];for(let z of A){let M=this.emitNode(z);if(M==null)continue;this._createLines.push(`${U}.appendChild(${M});`),$.push(M)}return this._fragChildren.set(U,$),U},u.emitConditional=function(h){if(this._pendingAutoWire=!1,h.length>4){let Y=h[h.length-1];for(let q=h.length-2;q>=3;q--)Y=[...h[q],Y];h=[h[0],h[1],h[2],Y]}let[,A,R,U]=h,$=this.newElementVar("anchor");this._createLines.push(`${$} = document.createComment('if');`);let z=this.emitInComponent(A,"value"),M=this._loopVarStack.map((Y)=>`${Y.itemVar}, ${Y.indexVar}`).join(", "),F=M?`, ${M}`:"",H=this.newBlockVar();this.emitConditionBranch(H,R);let Q=null;if(U)Q=this.newBlockVar(),this.emitConditionBranch(Q,U);let O=[];O.push(`// Conditional: ${H}${Q?" / "+Q:""}`),O.push("{"),O.push(` const anchor = ${$};`),O.push(" let currentBlock = null;"),O.push(" let showing = null;");let W=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",K=this._factoryMode?"}, {skipRegister: true}));":"});";if(O.push(` ${W}`),O.push(` const show = !!(${z});`),O.push(` const want = show ? 'then' : ${U?"'else'":"null"};`),O.push(" if (want === showing) return;"),O.push(""),O.push(" if (currentBlock) {"),O.push(" const leaving = currentBlock;"),O.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),O.push(" else { leaving.d(true); }"),O.push(" currentBlock = null;"),O.push(" }"),O.push(" showing = want;"),O.push(""),O.push(" if (want === 'then') {"),O.push(` currentBlock = ${H}(${this._self}${F});`),O.push(" currentBlock.c();"),O.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),O.push(` currentBlock.p(${this._self}${F});`),O.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),O.push(" }"),U)O.push(" if (want === 'else') {"),O.push(` currentBlock = ${Q}(${this._self}${F});`),O.push(" currentBlock.c();"),O.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),O.push(` currentBlock.p(${this._self}${F});`),O.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),O.push(" }");if(O.push(` ${K}`),this._factoryMode)O.push(" disposers.push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } });");else O.push(" { const __cur = globalThis.__ripComponent?.__getCurrentComponent?.(); if (__cur) (__cur._disposers ??= []).push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } }); }");return O.push("}"),this._setupLines.push(O.join(`
|
|
1051
|
-
`))
|
|
1052
|
-
`))},
|
|
1053
|
-
`)),
|
|
1882
|
+
})()`;return N.join(`
|
|
1883
|
+
`)},n.emitInComponent=function(s,c){if(typeof s==="string"&&this.reactiveMembers&&this.reactiveMembers.has(s))return`${this._self}.${s}.value`;if(typeof s==="string"&&this.componentMembers&&this.componentMembers.has(s))return`${this._self}.${s}`;if(Array.isArray(s)&&this.reactiveMembers){let h=this.transformComponentMembers(s);return this.emit(h,c)}return this.emit(s,c)},n.emitRender=function(s,c,h,o){this.error("render blocks can only be used inside a component",o)},n.emitOffer=function(s,c,h,o){this.error("offer can only be used inside a component",o)},n.emitAccept=function(s,c,h,o){this.error("accept can only be used inside a component",o)},n.buildRender=function(s){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._renderLocalScope=new Set,this._renderTopLocals=new Set,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let c=this.is(s,"block")?s.slice(1):[s],h=c.reduce((_,m)=>_+(this._isRenderBinding(m)?0:1),0),o;if(c.length===0||c.length===1&&c[0]==="null")o="null";else if(h===0){for(let _ of c)this.emitNode(_);o=this.newElementVar("empty"),this._createLines.push(`${o} = document.createComment('');`)}else if(h===1){this._pendingAutoWire=!!this._autoEventHandlers;let _=null;for(let m of c){let y=this.emitNode(m);if(y!=null)_=y}this._pendingAutoWire=!1,o=_}else{o=this.newElementVar("frag"),this._createLines.push(`${o} = document.createDocumentFragment();`);let _=[];for(let m of c){let y=this.emitNode(m);if(y==null)continue;this._createLines.push(`${o}.appendChild(${y});`),_.push(y)}this._fragChildren.set(o,_)}if(this._renderTopLocals.size>0){let _=`let ${[...this._renderTopLocals].join(", ")};`;this._createLines.unshift(_)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:o}},n.newBlockVar=function(){return`create_block_${this._blockCount++}`},n.newElementVar=function(s="el"){let c=`_${s}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(c);return this._factoryMode?c:`this.${c}`},n.newTextVar=function(){let s=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(s);return this._factoryMode?s:`this.${s}`},Object.defineProperty(n,"_self",{get(){return this._factoryMode?"ctx":"this"}}),n._pushEffect=function(s){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${s} }, {skipRegister: true}));`);else this._setupLines.push(`__effect(() => { ${s} });`)};let r=(s)=>typeof s==="string"&&/^[A-Za-z_$][\w$]*$/.test(s),f=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","?=","??="]);n._isRenderBinding=function(s){return Array.isArray(s)&&f.has(s[0])&&r(s[1])},n._addRenderLocal=function(s){if(this._renderLocalScope)this._renderLocalScope.add(s)},n._isRenderLocal=function(s){if(!s||typeof s!=="string")return!1;if(this._renderLocalScope&&this._renderLocalScope.has(s))return!0;if(this._loopVarStack){for(let c of this._loopVarStack)if(c.itemVar===s||c.indexVar===s)return!0}return!1},n.emitNode=function(s){if(this._isRenderBinding(s)){let[y,w,b]=s,D=this.emitInComponent(b,"value");if(y==="=")(this._factoryMode?this._factoryVars:this._renderTopLocals).add(w),this._addRenderLocal(w);return this._createLines.push(`${w} ${y} ${D};`),null}if(typeof s==="string"||s instanceof String){let y=s.valueOf();if(y.startsWith('"')||y.startsWith("'")||y.startsWith("`")){let d=this.newTextVar();return this._createLines.push(`${d} = document.createTextNode(${y});`),d}if(this.reactiveMembers&&this.reactiveMembers.has(y)){let d=this.newTextVar();return this._createLines.push(`${d} = document.createTextNode('');`),this._pushEffect(`${d}.data = ${this._self}.${y}.value;`),d}if(this._isRenderLocal(y)){let d=this.newTextVar();return this._createLines.push(`${d} = document.createTextNode(String(${y}));`),d}if(y==="slot"&&this.componentMembers){let d=this._self,R=this.newElementVar("slot");return this._createLines.push(`${R} = ${d}.children instanceof Node ? ${d}.children : (${d}.children != null ? document.createTextNode(String(${d}.children)) : document.createComment(''));`),R}let[w,b]=y.split("#"),D=this.newElementVar(),A=w||"div";if(p1.has(A)||this._svgDepth>0)this._createLines.push(`${D} = document.createElementNS('${n3}', '${A}');`);else this._createLines.push(`${D} = document.createElement('${A}');`);if(b)this._createLines.push(`${D}.id = '${b}';`);return this._bindInheritedTarget(A,D),D}if(!Array.isArray(s)){let y=this.newElementVar("c");return this._createLines.push(`${y} = document.createComment('unknown');`),y}let[c,...h]=s,o=typeof c==="string"?c:c instanceof String?c.valueOf():null;if(o&&this.isComponent(o))return this.emitChildComponent(o,h);if(o==="slot"&&this.componentMembers){let y=this._self,w=this.newElementVar("slot");return this._createLines.push(`${w} = ${y}.children instanceof Node ? ${y}.children : (${y}.children != null ? document.createTextNode(String(${y}.children)) : document.createComment(''));`),w}if(o==="switch"){let y=h[0],w=h[1]||[],D=h[2]||null;for(let d=w.length-1;d>=0;d--){let[,R,E]=w[d],O;if(y===null)O=R.length===1?R[0]:R.reduce((U,$)=>U?["||",U,$]:$,null);else O=R.length===1?["==",y,R[0]]:R.map((U)=>["==",y,U]).reduce((U,$)=>U?["||",U,$]:$,null);D=["if",O,E,D]}if(D){if(Array.isArray(D)&&D[0]==="if")return this.emitConditional(D);return this.emitTemplateBlock(D)}let A=this.newElementVar("c");return this._createLines.push(`${A} = document.createComment('switch');`),A}if(o&&this.isHtmlTag(o)&&!t(c,"text")&&!this._isRenderLocal(o)){let[y,w]=o.split("#");return this.emitTag(y||"div",[],h,w)}if(o==="."){let[,y,w]=s;if(y==="this"&&typeof w==="string"){let O=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(w)){let $=this.newTextVar();return this._createLines.push(`${$} = document.createTextNode('');`),this._pushEffect(`${$}.data = ${O}.${w}.value;`),$}let U=this.newElementVar("slot");return this._createLines.push(`${U} = ${O}.${w} instanceof Node ? ${O}.${w} : (${O}.${w} != null ? document.createTextNode(String(${O}.${w})) : document.createComment(''));`),U}let{tag:b,classes:D,id:A,base:d}=this.collectTemplateClasses(s);if(!t(d,"text")&&b&&this.isHtmlTag(b)&&!this._isRenderLocal(b))return this.emitTag(b,D,[],A);let R=this.newTextVar(),E=this.emitInComponent(s,"value");return this._createLines.push(`${R} = document.createTextNode(String(${E}));`),R}if(Array.isArray(c)){if(Array.isArray(c[0])&&c[0][0]==="."&&(c[0][2]==="__clsx"||c[0][2]instanceof String&&c[0][2].valueOf()==="__clsx")){let D=c[0][1],A=c.slice(1);if(Array.isArray(D)){let{tag:R,classes:E,id:O}=this.collectTemplateClasses(D);if(R){let U=E.map(($)=>`"${$}"`);return this.emitDynamicTag(R,A,h,U,O)}}let d=typeof D==="string"?D:D.valueOf();return this.emitDynamicTag(d,A,h)}let{tag:y,classes:w,id:b}=this.collectTemplateClasses(c);if(y&&this.isHtmlTag(y)&&!this._isRenderLocal(y)){if(w.length>0&&w[w.length-1]==="__clsx"){let A=w.slice(0,-1).map((d)=>`"${d}"`);return this.emitDynamicTag(y,h,[],A,b)}return this.emitTag(y,w,h,b)}}if(o==="->"||o==="=>")return this.emitTemplateBlock(h[1]);if(o==="if")return this.emitConditional(s);if(o==="for"||o==="for-in"||o==="for-of"||o==="for-as")return this.emitTemplateLoop(s);if(o==="__text__"){let y=h[0]??"undefined",w=this.newTextVar(),b=this.emitInComponent(y,"value");if(this.hasReactiveDeps(y))this._createLines.push(`${w} = document.createTextNode('');`),this._pushEffect(`${w}.data = String(${b});`);else this._createLines.push(`${w} = document.createTextNode(String(${b}));`);return w}let _=this.newTextVar(),m=this.emitInComponent(s,"value");if(this.hasReactiveDeps(s))this._createLines.push(`${_} = document.createTextNode('');`),this._pushEffect(`${_}.data = ${m};`);else this._createLines.push(`${_} = document.createTextNode(String(${m}));`);return _},n.appendChildren=function(s,c){for(let h of c)if(this.is(h,"->")||this.is(h,"=>")){let o=h[2];if(this.is(o,"block"))for(let _ of o.slice(1))if(this.is(_,"object"))this.emitAttributes(s,_);else{let m=this.emitNode(_);if(m==null)continue;this._createLines.push(`${s}.appendChild(${m});`)}else if(o){let _=this.emitNode(o);if(_!=null)this._createLines.push(`${s}.appendChild(${_});`)}}else if(this.is(h,"object"))this.emitAttributes(s,h);else if(typeof h==="string"||h instanceof String){let o=h.valueOf(),_=o.split(/[#.]/)[0];if(!this._isRenderLocal(_)&&(this.isHtmlTag(_||"div")||this.isComponent(_))){let m=this.emitNode(h);this._createLines.push(`${s}.appendChild(${m});`)}else{let m=this.newTextVar();if(o.startsWith('"')||o.startsWith("'")||o.startsWith("`"))this._createLines.push(`${m} = document.createTextNode(${o});`);else if(this.reactiveMembers&&this.reactiveMembers.has(o))this._createLines.push(`${m} = document.createTextNode('');`),this._pushEffect(`${m}.data = ${this._self}.${o}.value;`);else if(this.componentMembers&&this.componentMembers.has(o))this._createLines.push(`${m} = document.createTextNode(String(${this._self}.${o}));`);else this._createLines.push(`${m} = document.createTextNode(${this.emitInComponent(h,"value")});`);this._createLines.push(`${s}.appendChild(${m});`)}}else if(h){let o=this.emitNode(h);if(o!=null)this._createLines.push(`${s}.appendChild(${o});`)}},n._claimAutoWire=function(s){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=s,this._autoWireExplicit=new Set,!0},n._emitAutoWire=function(s,c){if(!c)return;for(let[h,o]of this._autoEventHandlers)if(!this._autoWireExplicit.has(h))this._createLines.push(`${s}.addEventListener('${h}', (e) => __batch(() => ${this._self}.${o}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},n._bindInheritedTarget=function(s,c){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(s!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${c};`),this._createLines.push("this._applyRestToInheritedEl();")},n.emitTag=function(s,c,h,o){let _=this.newElementVar(),m=p1.has(s)||this._svgDepth>0;if(m)this._createLines.push(`${_} = document.createElementNS('${n3}', '${s}');`);else this._createLines.push(`${_} = document.createElement('${s}');`);if(o)this._createLines.push(`${_}.id = '${o}';`);if(this._bindInheritedTarget(s,_),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${_}.setAttribute('data-part', '${this._componentName}');`);let y=this._claimAutoWire(_),w=this._pendingClassArgs,b=this._pendingClassEl;if(c.length>0)this._pendingClassArgs=[`'${c.join(" ")}'`],this._pendingClassEl=_;if(s==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(_,h),s==="svg")this._svgDepth--;if(c.length>0){if(this._pendingClassArgs.length===1)if(m)this._createLines.push(`${_}.setAttribute('class', '${c.join(" ")}');`);else this._createLines.push(`${_}.className = '${c.join(" ")}';`);else{let D=this._pendingClassArgs.join(", ");if(m)this._pushEffect(`${_}.setAttribute('class', __clsx(${D}));`);else this._pushEffect(`${_}.className = __clsx(${D});`)}this._pendingClassArgs=w,this._pendingClassEl=b}return this._emitAutoWire(_,y),_},n.emitDynamicTag=function(s,c,h,o,_){let m=this.newElementVar();if(p1.has(s)||this._svgDepth>0)this._createLines.push(`${m} = document.createElementNS('${n3}', '${s}');`);else this._createLines.push(`${m} = document.createElement('${s}');`);if(_)this._createLines.push(`${m}.id = '${_}';`);this._bindInheritedTarget(s,m);let y=this._claimAutoWire(m),w=[...o||[],...c.map((A)=>this.emitInComponent(A,"value"))],b=this._pendingClassArgs,D=this._pendingClassEl;if(this._pendingClassArgs=w,this._pendingClassEl=m,s==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(m,h),s==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let A=this._pendingClassArgs.join(", ");if(p1.has(s)||this._svgDepth>0)this._pushEffect(`${m}.setAttribute('class', __clsx(${A}));`);else this._pushEffect(`${m}.className = __clsx(${A});`)}return this._pendingClassArgs=b,this._pendingClassEl=D,this._emitAutoWire(m,y),m},n.emitAttributes=function(s,c){let h=u6(c.slice(1));for(let o=1;o<c.length;o++){let[,_,m]=c[o];if(this.is(_,".")&&_[1]==="this"){let y=_[2];if(this._autoWireExplicit&&this._autoWireEl===s)this._autoWireExplicit.add(y);if(typeof m==="string"&&this.componentMembers?.has(m))this._createLines.push(`${s}.addEventListener('${y}', (e) => __batch(() => ${this._self}.${m}(e)));`);else{let w=this.emitInComponent(m,"value");this._createLines.push(`${s}.addEventListener('${y}', (e) => __batch(() => (${w})(e)));`)}continue}if(typeof _==="string"||_ instanceof String){if(_.startsWith('"')&&_.endsWith('"'))_=_.slice(1,-1);if(_==="class"||_==="className"){let w=this.emitInComponent(m,"value");if(this._pendingClassArgs&&this._pendingClassEl===s)this._pendingClassArgs.push(w);else if(this.hasReactiveDeps(m))if(this._svgDepth>0)this._pushEffect(`${s}.setAttribute('class', __clsx(${w}));`);else this._pushEffect(`${s}.className = __clsx(${w});`);else if(this._svgDepth>0)this._createLines.push(`${s}.setAttribute('class', ${w});`);else this._createLines.push(`${s}.className = ${w};`);continue}if(_==="__transition__"){let w=String(m).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${w}";`);continue}if(_==="ref"){let w=String(m).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${w} = ${s};`);continue}if(_.startsWith(f4)&&_.endsWith(c4)){let w=_.slice(f4.length,-c4.length),b=this.emitInComponent(m,"value"),D,A;if(w==="checked")D="change",A="e.target.checked";else D="input",A=h==="number"||h==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${s}.${w} = ${b};`);let d=`${b} = ${A}`,R=!this.isSimpleAssignable(m)&&this.findRootReactiveMember(m);if(R)d+=`; ${this._self}.${R}.touch?.()`;this._createLines.push(`${s}.addEventListener('${D}', (e) => { ${d}; });`);continue}let y=this.emitInComponent(m,"value");if((_==="value"||_==="checked")&&this.hasReactiveDeps(m)){this._pushEffect(`${s}.${_} = ${y};`);continue}if(_==="innerHTML"||_==="textContent"||_==="innerText")if(this.hasReactiveDeps(m))this._pushEffect(`${s}.${_} = ${y};`);else this._createLines.push(`${s}.${_} = ${y};`);else if(i6.has(_))if(this.hasReactiveDeps(m))this._pushEffect(`${s}.toggleAttribute('${_}', !!${y});`);else this._createLines.push(`if (${y}) ${s}.setAttribute('${_}', '');`);else if(this.hasReactiveDeps(m))if(Array.isArray(m)&&m[0]==="presence")this._pushEffect(`{ const __v = ${y}; __v == null ? ${s}.removeAttribute('${_}') : ${s}.setAttribute('${_}', __v); }`);else this._pushEffect(`${s}.setAttribute('${_}', ${y});`);else if(Array.isArray(m)&&m[0]==="presence")this._createLines.push(`{ const __v = ${y}; if (__v != null) ${s}.setAttribute('${_}', __v); }`);else this._createLines.push(`${s}.setAttribute('${_}', ${y});`)}}},n.emitTemplateBlock=function(s){if(!Array.isArray(s)||s[0]!=="block"){let m=this.emitNode(s);if(m!=null)return m;let y=this.newElementVar("empty");return this._createLines.push(`${y} = document.createComment('');`),y}let c=s.slice(1);if(c.length===0){let m=this.newElementVar("empty");return this._createLines.push(`${m} = document.createComment('');`),m}let h=c.reduce((m,y)=>m+(this._isRenderBinding(y)?0:1),0);if(h===0){for(let y of c)this.emitNode(y);let m=this.newElementVar("empty");return this._createLines.push(`${m} = document.createComment('');`),m}if(h===1){let m=null;for(let y of c){let w=this.emitNode(y);if(w!=null)m=w}return m}let o=this.newElementVar("frag");this._createLines.push(`${o} = document.createDocumentFragment();`);let _=[];for(let m of c){let y=this.emitNode(m);if(y==null)continue;this._createLines.push(`${o}.appendChild(${y});`),_.push(y)}return this._fragChildren.set(o,_),o},n.emitConditional=function(s){if(this._pendingAutoWire=!1,s.length>4){let E=s[s.length-1];for(let O=s.length-2;O>=3;O--)E=[...s[O],E];s=[s[0],s[1],s[2],E]}let[,c,h,o]=s,_=this.newElementVar("anchor");this._createLines.push(`${_} = document.createComment('if');`);let m=this.emitInComponent(c,"value"),y=this._loopVarStack.map((E)=>`${E.itemVar}, ${E.indexVar}`).join(", "),w=y?`, ${y}`:"",b=this.newBlockVar();this.emitConditionBranch(b,h);let D=null;if(o)D=this.newBlockVar(),this.emitConditionBranch(D,o);let A=[];A.push(`// Conditional: ${b}${D?" / "+D:""}`),A.push("{"),A.push(` const anchor = ${_};`),A.push(" let currentBlock = null;"),A.push(" let showing = null;");let d=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",R=this._factoryMode?"}, {skipRegister: true}));":"});";if(A.push(` ${d}`),A.push(` const show = !!(${m});`),A.push(` const want = show ? 'then' : ${o?"'else'":"null"};`),A.push(" if (want === showing) return;"),A.push(""),A.push(" if (currentBlock) {"),A.push(" const leaving = currentBlock;"),A.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),A.push(" else { leaving.d(true); }"),A.push(" currentBlock = null;"),A.push(" }"),A.push(" showing = want;"),A.push(""),A.push(" if (want === 'then') {"),A.push(` currentBlock = ${b}(${this._self}${w});`),A.push(" currentBlock.c();"),A.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),A.push(` currentBlock.p(${this._self}${w});`),A.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),A.push(" }"),o)A.push(" if (want === 'else') {"),A.push(` currentBlock = ${D}(${this._self}${w});`),A.push(" currentBlock.c();"),A.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),A.push(` currentBlock.p(${this._self}${w});`),A.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),A.push(" }");if(A.push(` ${R}`),this._factoryMode)A.push(" disposers.push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } });");else A.push(" { const __cur = globalThis.__ripComponent?.__getCurrentComponent?.(); if (__cur) (__cur._disposers ??= []).push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } }); }");return A.push("}"),this._setupLines.push(A.join(`
|
|
1884
|
+
`)),_},n.emitConditionBranch=function(s,c){let h=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set,this._renderLocalScope=new Set;let o=this.emitTemplateBlock(c),_=this._createLines,m=this._setupLines,y=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope]=h;let w=this._loopVarStack.map((D)=>`${D.itemVar}, ${D.indexVar}`).join(", "),b=w?`, ${w}`:"";this.emitBlockFactory(s,`ctx${b}`,o,_,m,y)},n.emitBlockFactory=function(s,c,h,o,_,m,y){let w=[];if(w.push(`function ${s}(${c}) {`),m.size>0)w.push(` let ${[...m].join(", ")};`);let b=_.length>0;if(b)w.push(" let disposers = [];");if(w.push(" let _factoryChildren = [];"),w.push(" return {"),y)w.push(" _s: true,");let D=this._fragChildren.get(h),A=D?D[0]:h;w.push(" c() {");for(let d of o)w.push(` ${d}`);if(w.push(` this._first = ${A};`),w.push(" },"),w.push(" m(target, anchor) {"),D)for(let d of D)w.push(` if (target) target.insertBefore(${d}, anchor);`);else w.push(` if (target) target.insertBefore(${h}, anchor);`);if(w.push(" },"),w.push(` p(${c}) {`),b){w.push(" disposers.forEach(d => d());"),w.push(" disposers = [];");for(let d of _)w.push(` ${d}`)}if(w.push(" },"),w.push(" d(detaching) {"),w.push(" for (const __c of _factoryChildren) { try { __c.unmount?.({removeDOM: false}); } catch (__e) { console.error('[Rip] factory child unmount error:', __e); } }"),w.push(" _factoryChildren = [];"),b)w.push(" disposers.forEach(d => d());");if(D)for(let d of D)w.push(` if (detaching && ${d}) ${d}.remove();`);else w.push(` if (detaching && ${h}) ${h}.remove();`);w.push(" }"),w.push(" };"),w.push("}"),this._blockFactories.push(w.join(`
|
|
1885
|
+
`))},n.emitTemplateLoop=function(s){this._pendingAutoWire=!1;let[c,h,o,_,m,y]=s,w=this.newBlockVar(),b=this.newElementVar("anchor");this._createLines.push(`${b} = document.createComment('for');`);let D=Array.isArray(h)?h:[h],A=D[0],d=D[1]||null;if(!d){let P=new Set(this._loopVarStack.flatMap((M)=>[M.itemVar,M.indexVar]));P.add(A),this._collectBodyBindings(y,P);for(let M of["i","j","k","l","m","n"])if(!P.has(M)){d=M;break}d=d||`__rip_idx${this._loopVarStack.length}`}let R=this.emitInComponent(o,"value"),E=A;if(this.is(y,"block")&&y.length>1){let P=y[1];if(Array.isArray(P))for(let M of P){if(this.is(M,"object"))for(let Q=1;Q<M.length;Q++){let[n1,p]=M[Q];if(n1==="key"){E=this.emit(p,"value");break}}if(E!==A)break}}let O=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set,this._renderLocalScope=new Set;let U=this._loopVarStack.map((P)=>`${P.itemVar}, ${P.indexVar}`).join(", "),$=U?`, ${U}`:"",S=this.hasReactiveDeps(o);this._loopVarStack.push({itemVar:A,indexVar:d,reactiveSource:S});let g=this.emitTemplateBlock(y);this._loopVarStack.pop();let q=this._createLines,H=this._setupLines,B=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope]=O;let L=H.length===0,W=`ctx, ${A}, ${d}${$}`;this.emitBlockFactory(w,W,g,q,H,B,L);let N=E!==A?`(${A}, ${d}) => ${E}`:"null",o1=U?`, ${U}`:"",K=[];K.push(`// Loop: ${w}`),K.push("{"),K.push(" const __s = { blocks: [], keys: [] };");let Y=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",F=this._factoryMode?"}, {skipRegister: true}));":"});";if(K.push(` ${Y}`),K.push(` __reconcile(${b}, __s, ${R}, ${this._self}, ${w}, ${N}${o1});`),K.push(` ${F}`),this._factoryMode)K.push(" disposers.push(() => { for (const __b of __s.blocks) { try { __b.d(true); } catch {} } __s.blocks = []; __s.keys = []; __s.items = []; });");else K.push(" { const __cur = globalThis.__ripComponent?.__getCurrentComponent?.(); if (__cur) (__cur._disposers ??= []).push(() => { for (const __b of __s.blocks) { try { __b.d(true); } catch {} } __s.blocks = []; __s.keys = []; __s.items = []; }); }");return K.push("}"),this._setupLines.push(K.join(`
|
|
1886
|
+
`)),b},n.emitChildComponent=function(s,c){this._pendingAutoWire=!1;let h=this.newElementVar("inst"),o=this.newElementVar("el"),{propsCode:_,reactiveProps:m,eventBindings:y,childrenSetupLines:w}=this.buildComponentProps(c),b=this._self;if(this._createLines.push(`{ const __prev = __pushComponent(${b}); try {`),this._createLines.push("try {"),this._createLines.push(`${h} = new ${s}(${_});`),this._createLines.push(`if (${h} && ${h}._initFailed) {`),this._createLines.push(` try { ${h}.unmount({removeDOM: false}); } catch (__ue) { console.error('[Rip] partial-init unmount error:', __ue); }`),this._createLines.push(` ${h} = null;`),this._createLines.push(` ${o} = document.createComment('rip:child-init-failed: ${s}');`),this._createLines.push("} else {"),this._createLines.push(` { const __cprev = __pushComponent(${h}); try {`),this._createLines.push(` ${o} = ${h}._root = ${h}._create();`),this._createLines.push(" } finally { __popComponent(__cprev); } }"),this._factoryMode)this._createLines.push(` _factoryChildren.push(${h});`);else this._createLines.push(` (${b}._children || (${b}._children = [])).push(${h});`);this._createLines.push("}"),this._createLines.push("} catch (__childErr) {"),this._createLines.push(` console.error('[Rip] ${s} construction failed:', __childErr);`),this._createLines.push(` if (${h}) { try { ${h}.unmount({removeDOM: false}); } catch (__ue) { console.error('[Rip] partial-child unmount error:', __ue); } }`),this._createLines.push(` ${h} = null;`),this._createLines.push(` ${o} = document.createComment('rip:child-error: ${s}');`),this._createLines.push("}"),this._createLines.push("} finally { __popComponent(__prev); } }");for(let{event:D,value:A}of y){let d=this.emitInComponent(A,"value");this._createLines.push(`if (${h}) ${o}.addEventListener('${D}', (e) => __batch(() => (${d})(e)));`)}this._setupLines.push(`if (${h} && !${h}._isSetup) { ${h}._isSetup = true; const __cprev = __pushComponent(${h}); try { try { if (${h}.beforeMount) ${h}.beforeMount(); if (${h}._setup) ${h}._setup(); if (${h}.mounted) ${h}.mounted(); } catch (__e) { __handleComponentError(__e, ${h}); } } finally { __popComponent(__cprev); } }`);for(let{key:D,valueCode:A}of m)this._pushEffect(`if (${h}) { if (${h}.${D} && typeof ${h}.${D} === 'object' && 'value' in ${h}.${D}) ${h}.${D}.value = ${A}; else if (${h}._setRestProp) ${h}._setRestProp('${D}', ${A}); }`);for(let D of w)this._setupLines.push(D);return o},n.buildComponentProps=function(s){let c=[],h=[],o=[],_=null,m=[],y=(d,R)=>{if(d.startsWith("@")){o.push({event:d.slice(1).split(".")[0],value:R});return}if(this.reactiveMembers&&(typeof R==="string"&&this.reactiveMembers.has(R)||Array.isArray(R)&&R[0]==="."&&R[1]==="this"&&typeof R[2]==="string"&&this.reactiveMembers.has(R[2]))){let O=typeof R==="string"?R:R[2];c.push(`${d}: ${this._self}.${O}`)}else{let O=this.emitInComponent(R,"value");if(c.push(`${d}: ${O}`),this.hasReactiveDeps(R))h.push({key:d,valueCode:O})}},w=(d)=>{for(let R=1;R<d.length;R++){let[,E,O]=d[R];if(typeof E==="string")y(E,O);else if(Array.isArray(E)&&E[0]==="."&&E[1]==="this"&&typeof E[2]==="string")o.push({event:E[2],value:O})}},b=/^[a-zA-Z_$][\w$]*$/,D=(d)=>typeof d==="string"&&b.test(d);for(let d of s)if(this.is(d,"object"))w(d);else if(D(d))y(d,"true");else if(Array.isArray(d)&&(d[0]==="->"||d[0]==="=>")){let R=d[2];if(R){if(this.is(R,"block")){let E=[];for(let O of R.slice(1))if(this.is(O,"object"))w(O);else E.push(O);R=E.length>0?["block",...E]:null}if(R){let E=this._createLines,O=this._setupLines;this._createLines=[],this._setupLines=[],_=this.emitTemplateBlock(R);let U=this._createLines,$=this._setupLines;this._createLines=E,this._setupLines=O;for(let S of U)this._createLines.push(S);m.push(...$),c.push(`children: ${_}`)}}}else if(d&&!_){let R=this.newTextVar(),E=this.emitInComponent(d,"value");if(this.hasReactiveDeps(d)){this._createLines.push(`${R} = document.createTextNode('');`);let O=`${R}.data = ${E};`,U=this._factoryMode?`disposers.push(__effect(() => { ${O} }, {skipRegister: true}));`:`__effect(() => { ${O} });`;m.push(U)}else this._createLines.push(`${R} = document.createTextNode(${E});`);_=R,c.push(`children: ${_}`)}return{propsCode:c.length>0?`{ ${c.join(", ")} }`:"{}",reactiveProps:h,eventBindings:o,childrenSetupLines:m}},n.hasReactiveDeps=function(s){if(typeof s==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(s));if(!Array.isArray(s))return!1;if(s[0]==="."&&s[1]==="this"&&typeof s[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(s[2]));if(s[0]==="."&&this._rootsAtThis(s[1]))return!0;if((s[0]==="."||s[0]==="[]")&&this._rootsAtReactiveLoopVar(s))return!0;if(Array.isArray(s[0])&&s[0][0]==="."&&s[0][1]==="this"){let c=i(s[0][2]);if(c&&this.componentMembers?.has(c))return!0}for(let c of s)if(this.hasReactiveDeps(c))return!0;return!1},n._collectBodyBindings=function(s,c){if(!Array.isArray(s))return;let h=s[0];if(h==="for-in"||h==="for-of"||h==="for-as"){let o=s[1],_=Array.isArray(o)?o:[o];for(let m of _)if(typeof m==="string")c.add(m)}else if(h==="="&&r(s[1]))c.add(s[1]);for(let o=1;o<s.length;o++)this._collectBodyBindings(s[o],c)},n.isSimpleAssignable=function(s){if(typeof s==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(s));if(Array.isArray(s)&&s[0]==="."&&s[1]==="this"&&typeof s[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(s[2]));return!1},n.findRootReactiveMember=function(s){if(typeof s==="string")return this.reactiveMembers?.has(s)?s:null;if(!Array.isArray(s))return null;if(s[0]==="."&&s[1]==="this"&&typeof s[2]==="string")return this.reactiveMembers?.has(s[2])?s[2]:null;if(s[0]==="."||s[0]==="[]")return this.findRootReactiveMember(s[1]);return null},n._rootsAtThis=function(s){if(typeof s==="string")return s==="this";if(!Array.isArray(s)||s[0]!==".")return!1;return this._rootsAtThis(s[1])},n._rootsAtReactiveLoopVar=function(s){if(typeof s==="string"){if(!this._loopVarStack||this._loopVarStack.length===0)return!1;for(let c=this._loopVarStack.length-1;c>=0;c--){let h=this._loopVarStack[c];if(h.itemVar===s)return!!h.reactiveSource}return!1}if(!Array.isArray(s))return!1;if(s[0]==="."||s[0]==="[]")return this._rootsAtReactiveLoopVar(s[1]);return!1},n.getComponentRuntime=function(){return`
|
|
1054
1887
|
// ============================================================================
|
|
1055
1888
|
// Rip Component Runtime
|
|
1056
1889
|
// ============================================================================
|
|
@@ -1310,6 +2143,28 @@ function __transition(el, name, dir, done) {
|
|
|
1310
2143
|
});
|
|
1311
2144
|
}
|
|
1312
2145
|
|
|
2146
|
+
// Render-ready binding (\`x <~ @app.data.x\`): a reactive read of a
|
|
2147
|
+
// stash source key that retains the last non-null value for the life of
|
|
2148
|
+
// this instance. A null write or reset() invalidates the CELL (ungated
|
|
2149
|
+
// readers see it immediately) without yanking mounted gates — the
|
|
2150
|
+
// live-binding invariant. Last-good lives in this closure, so it dies
|
|
2151
|
+
// with the instance.
|
|
2152
|
+
function __gateBind(self, path, keyFn) {
|
|
2153
|
+
// The component runtime ships both inlined after the reactive runtime
|
|
2154
|
+
// (where __computed is a local) and as a standalone bundle chunk (where
|
|
2155
|
+
// it is not) — resolve through globalThis.__rip in the latter case.
|
|
2156
|
+
const __c = typeof __computed !== 'undefined' ? __computed : globalThis.__rip.__computed;
|
|
2157
|
+
let last;
|
|
2158
|
+
return __c(() => {
|
|
2159
|
+
const data = self.app && self.app.data;
|
|
2160
|
+
if (!data) return last;
|
|
2161
|
+
const v = keyFn
|
|
2162
|
+
? data[path](keyFn(self.params || {}, self.query || {}))
|
|
2163
|
+
: data[path]; // dotted paths route through the stash's path-key get
|
|
2164
|
+
return v != null ? (last = v) : last;
|
|
2165
|
+
});
|
|
2166
|
+
}
|
|
2167
|
+
|
|
1313
2168
|
function __handleComponentError(error, component) {
|
|
1314
2169
|
let current = component;
|
|
1315
2170
|
// Defensive cycle guard: if the parent chain is corrupted (e.g. by
|
|
@@ -1331,6 +2186,17 @@ class __Component {
|
|
|
1331
2186
|
constructor(props = {}) {
|
|
1332
2187
|
Object.assign(this, props);
|
|
1333
2188
|
if (!this.app && globalThis.__ripApp) this.app = globalThis.__ripApp;
|
|
2189
|
+
// A component with render gates (<~) is honored only via route
|
|
2190
|
+
// matching — the renderer sets __ripGateMount around each route/layout
|
|
2191
|
+
// construction. Constructed as an embedded child (a parent scope is
|
|
2192
|
+
// active but the renderer flag doesn't match), its gates were never
|
|
2193
|
+
// loaded, so the T-typed bindings would be silent nulls. Fail loud and
|
|
2194
|
+
// deterministically instead. Direct construction outside any component
|
|
2195
|
+
// scope (tests: seed the stash, then construct) stays allowed.
|
|
2196
|
+
const __g = this.constructor.__gates;
|
|
2197
|
+
if (__g && __g.length && globalThis.__ripGateMount !== this.constructor && __currentComponent) {
|
|
2198
|
+
throw new Error('[Rip] component declares render gates (<~) but was constructed as an embedded child; gates are honored only via route matching — lift the gate to the route/layout and pass the value as a prop');
|
|
2199
|
+
}
|
|
1334
2200
|
const prev = __pushComponent(this);
|
|
1335
2201
|
try {
|
|
1336
2202
|
this._init(props);
|
|
@@ -1430,14 +2296,14 @@ class __Component {
|
|
|
1430
2296
|
|
|
1431
2297
|
// Register on globalThis for runtime deduplication
|
|
1432
2298
|
if (typeof globalThis !== 'undefined') {
|
|
1433
|
-
globalThis.__ripComponent = { __pushComponent, __popComponent, __getCurrentComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
2299
|
+
globalThis.__ripComponent = { __pushComponent, __popComponent, __getCurrentComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __gateBind, __Component };
|
|
1434
2300
|
}
|
|
1435
2301
|
|
|
1436
|
-
`}}function
|
|
2302
|
+
`}}function F1(e){let u="",t=e<0?-e<<1|1:e<<1;do{let l=t&31;if(t>>>=5,t>0)l|=32;u+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[l]}while(t>0);return u}class u3{constructor(e,u,t=null){this.file=e,this.source=u,this.sourceContent=t,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine(e){while(this.lines.length<=e)this.lines.push([])}addName(e){if(this.nameIndex.has(e))return this.nameIndex.get(e);let u=this.names.length;return this.names.push(e),this.nameIndex.set(e,u),u}addMapping(e,u,t,l,n){if(this.ensureLine(e),this.currentLine!==e)this.prevGenCol=0,this.currentLine=e;if(t==null){this.lines[e].push(F1(u-this.prevGenCol)),this.prevGenCol=u;return}this.mappings.push({genLine:e,genCol:u,origLine:t,origCol:l});let i=F1(u-this.prevGenCol);if(this.prevGenCol=u,i+=F1(0),i+=F1(t-this.prevOrigLine),this.prevOrigLine=t,i+=F1(l-this.prevOrigCol),this.prevOrigCol=l,n!=null){let a=this.addName(n);i+=F1(a-this.prevNameIdx),this.prevNameIdx=a}this.lines[e].push(i)}toReverseMap(){let e=new Map;for(let u of this.mappings){if(!e.has(u.origLine))e.set(u.origLine,[]);e.get(u.origLine).push({origCol:u.origCol,genLine:u.genLine,genCol:u.genCol})}return e}toJSON(){let e=this.lines.map((t)=>t.join(",")).join(";"),u={version:3,file:this.file,sources:[this.source],names:this.names,mappings:e};if(this.sourceContent!=null)u.sourcesContent=[this.sourceContent];return JSON.stringify(u)}}function a6(e){let u=[],t=0;while(t<e.length){let l=0,n=0,i;do i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(e[t++]),l|=(i&31)<<n,n+=5;while(i&32);u.push(l&1?-(l>>1):l>>1)}return u}var r6=`
|
|
1437
2303
|
;
|
|
1438
|
-
`,
|
|
1439
|
-
//# sourceMappingURL=data:application/json;base64,`+
|
|
1440
|
-
`}function
|
|
2304
|
+
`,s6=2;function f6(e){let u=/\n?\/\/# sourceMappingURL=data:application\/json(?:;charset=[^;,]+)?;base64,([A-Za-z0-9+/=]+)\s*$/,t=e.match(u);if(!t)return{js:e,mapJSON:null};let l;try{let n=atob(t[1]),i=new Uint8Array(n.length);for(let a=0;a<n.length;a++)i[a]=n.charCodeAt(a);l=new TextDecoder().decode(i)}catch{return{js:e.slice(0,t.index),mapJSON:null}}return{js:e.slice(0,t.index),mapJSON:l}}function c6(e){let u=0;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)===10)u++;return u}function o6(e){let u=e.split(";"),t=[],l=0,n=0,i=0,a=0;for(let r of u){let f=[],s=0;if(r.length>0)for(let c of r.split(",")){if(c.length===0)continue;let h=a6(c);if(s+=h[0],h.length===1)f.push({genCol:s});else{l+=h[1],n+=h[2],i+=h[3];let o={genCol:s,src:l,origLine:n,origCol:i};if(h.length>=5)a+=h[4],o.name=a;f.push(o)}}t.push(f)}return t}function h6(e){let u=0,t=0,l=0,n=0,i=0,a=[];for(let r of e){u=0;let f=[];for(let s of r){if(s.src==null)f.push(F1(s.genCol-u));else{let c=F1(s.genCol-u);if(c+=F1(s.src-t),c+=F1(s.origLine-l),c+=F1(s.origCol-n),s.name!=null)c+=F1(s.name-i),i=s.name;t=s.src,l=s.origLine,n=s.origCol,f.push(c)}u=s.genCol}a.push(f.join(","))}return a.join(";")}function _6(e){let u=e.map((b)=>{if(b.mapJSON!==void 0)return{js:b.js,mapJSON:b.mapJSON};return f6(b.js)}),t=u.some((b)=>b.mapJSON),l=u.map((b)=>b.js).join(r6);if(!t)return{js:l,mapJSON:null};let n=[],i=[],a=new Map,r=[],f=new Map;function s(b,D){if(a.has(b))return a.get(b);let A=n.length;return n.push(b),i.push(D??null),a.set(b,A),A}function c(b){if(f.has(b))return f.get(b);let D=r.length;return r.push(b),f.set(b,D),D}let h=[],o=0;for(let b=0;b<u.length;b++){let D=u[b],A={lineOffset:o,srcRemap:[],nameRemap:[],perLineSegs:null};if(D.mapJSON){let E;try{E=JSON.parse(D.mapJSON)}catch{E=null}if(E&&typeof E.mappings==="string"){let O=E.sources||[],U=E.sourcesContent||[];A.srcRemap=O.map((S,g)=>s(S,U[g]));let $=E.names||[];A.nameRemap=$.map((S)=>c(S)),A.perLineSegs=o6(E.mappings)}}h.push(A);let d=c6(D.js),R=b<u.length-1?s6:0;o+=d+R}let _=o+1,m=Array(_).fill(null).map(()=>[]);for(let b of h){if(!b.perLineSegs)continue;for(let D=0;D<b.perLineSegs.length;D++){let A=b.lineOffset+D;if(A>=m.length)while(m.length<=A)m.push([]);for(let d of b.perLineSegs[D])if(d.src==null)m[A].push({genCol:d.genCol});else{let R={genCol:d.genCol,src:b.srcRemap[d.src],origLine:d.origLine,origCol:d.origCol};if(d.name!=null)R.name=b.nameRemap[d.name];m[A].push(R)}}}let y=h6(m);return{js:l,mapJSON:JSON.stringify({version:3,sources:n,sourcesContent:i,names:r,mappings:y})}}function w6(e){if(typeof Buffer<"u")return Buffer.from(e,"utf8").toString("base64");let u=new TextEncoder().encode(e),t="";for(let l=0;l<u.length;l++)t+=String.fromCharCode(u[l]);return btoa(t)}function w4(e){let{js:u,mapJSON:t}=_6(e);if(!t)return u;let l=w6(t);return u+`
|
|
2305
|
+
//# sourceMappingURL=data:application/json;base64,`+l+`
|
|
2306
|
+
`}function u2(){return`// rip:stdlib:begin
|
|
1441
2307
|
globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
1442
2308
|
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
1443
2309
|
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
@@ -1482,212 +2348,223 @@ globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
|
1482
2348
|
globalThis.warn ??= console.warn;
|
|
1483
2349
|
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
1484
2350
|
// rip:stdlib:end
|
|
1485
|
-
`}class
|
|
1486
|
-
`)}formatHTML(){let
|
|
1487
|
-
`)}_snippet(){if(this.source==null||this.line==null)return null;let
|
|
1488
|
-
`),
|
|
1489
|
-
`)>=0){let
|
|
1490
|
-
`).map((
|
|
1491
|
-
`)}let
|
|
1492
|
-
`))return" ".repeat(
|
|
1493
|
-
`))
|
|
1494
|
-
`).map((
|
|
1495
|
-
`)}else
|
|
1496
|
-
`)){
|
|
1497
|
-
`)}class
|
|
1498
|
-
`).length}}
|
|
1499
|
-
`)
|
|
1500
|
-
`))
|
|
1501
|
-
`),
|
|
1502
|
-
`),
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
`;
|
|
1506
|
-
`,
|
|
1507
|
-
`;
|
|
1508
|
-
`,
|
|
1509
|
-
|
|
1510
|
-
`,
|
|
1511
|
-
`,
|
|
1512
|
-
`,
|
|
1513
|
-
`,
|
|
1514
|
-
`,
|
|
1515
|
-
`,
|
|
1516
|
-
`,
|
|
1517
|
-
`,
|
|
1518
|
-
`,
|
|
1519
|
-
`,
|
|
1520
|
-
`,
|
|
1521
|
-
`,
|
|
1522
|
-
`,
|
|
1523
|
-
`,
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
`;else if(typeof globalThis<"u"&&globalThis.
|
|
1527
|
-
`;else
|
|
1528
|
-
`;else if(typeof globalThis<"u"&&globalThis.
|
|
1529
|
-
`;else
|
|
2351
|
+
`}class d1 extends Error{constructor(e,{code:u=null,file:t=null,line:l=null,column:n=null,length:i=1,source:a=null,suggestion:r=null,phase:f=null}={}){super(e);this.name="RipError",this.code=u,this.file=t,this.line=l,this.column=n,this.length=i,this.source=a,this.suggestion=r,this.phase=f}static fromLexer(e,u,t){let l=e.location||{};return new d1(e.message,{code:"E_SYNTAX",file:t,line:l.first_line??null,column:l.first_column??null,length:l.last_column!=null&&l.first_column!=null?l.last_column-l.first_column+1:1,source:u,phase:"lexer"})}static fromParser(e,u,t){let l=e.hash||{},n=l.loc||{},i=l.line??n.r??null,a=n.first_column??n.c??null,r=null;if(l.expected?.length){if(r=`Expected ${l.expected.slice(0,5).map((o)=>o.replace(/'/g,"")).join(", ")}`,l.expected.length>5)r+=`, ... (${l.expected.length} total)`}let f=l.token||"token",s=l.text?` near '${l.text}'`:"",c=`Unexpected ${f}${s}`;return new d1(c,{code:"E_PARSE",file:t,line:i,column:a,length:l.text?.length||1,source:u,suggestion:r,phase:"parser"})}static fromSExpr(e,u,t,l,n){let i=u?.loc||{};return new d1(e,{code:"E_CODEGEN",file:l,line:i.r??null,column:i.c??null,length:i.n??1,source:t,suggestion:n,phase:"codegen"})}get locationString(){let e=[];if(this.file)e.push(this.file);if(this.line!=null)e.push(`${this.line+1}:${(this.column??0)+1}`);return e.join(":")}format({color:e=!0}={}){let u=e?{red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",dim:"\x1B[2m",bold:"\x1B[1m",reset:"\x1B[0m"}:{red:"",yellow:"",cyan:"",dim:"",bold:"",reset:""},t=[],l=this.locationString,n=l?`${u.cyan}${l}${u.reset} `:"";t.push(`${n}${u.red}${u.bold}error${u.reset}${u.bold}: ${this.message}${u.reset}`);let i=this._snippet();if(i){t.push("");for(let a of i)if(a.type==="source")t.push(`${u.dim}${a.gutter}${u.reset}${a.text}`);else if(a.type==="caret")t.push(`${u.dim}${a.gutter}${u.reset}${u.red}${u.bold}${a.text}${u.reset}`)}if(this.suggestion)t.push(""),t.push(`${u.yellow}hint${u.reset}: ${this.suggestion}`);return t.join(`
|
|
2352
|
+
`)}formatHTML(){let e=[];e.push('<div class="rip-error">'),e.push("<style>"),e.push('.rip-error { font-family: ui-monospace, "SF Mono", Menlo, Monaco, monospace; font-size: 13px; line-height: 1.5; padding: 16px 20px; background: #1e1e2e; color: #cdd6f4; border-radius: 8px; overflow-x: auto; }'),e.push(".rip-error .re-header { color: #f38ba8; font-weight: 600; }"),e.push(".rip-error .re-loc { color: #89b4fa; }"),e.push(".rip-error .re-gutter { color: #585b70; user-select: none; }"),e.push(".rip-error .re-caret { color: #f38ba8; font-weight: 700; }"),e.push(".rip-error .re-hint { color: #f9e2af; }"),e.push(".rip-error .re-snippet { margin: 8px 0; }"),e.push("</style>");let u=this.locationString,t=u?`<span class="re-loc">${V1(u)}</span> `:"";e.push(`<div class="re-header">${t}error: ${V1(this.message)}</div>`);let l=this._snippet();if(l){e.push('<pre class="re-snippet">');for(let n of l)if(n.type==="source")e.push(`<span class="re-gutter">${V1(n.gutter)}</span>${V1(n.text)}`);else if(n.type==="caret")e.push(`<span class="re-gutter">${V1(n.gutter)}</span><span class="re-caret">${V1(n.text)}</span>`);e.push("</pre>")}if(this.suggestion)e.push(`<div class="re-hint">hint: ${V1(this.suggestion)}</div>`);return e.push("</div>"),e.join(`
|
|
2353
|
+
`)}_snippet(){if(this.source==null||this.line==null)return null;let e=this.source.split(`
|
|
2354
|
+
`),u=this.line;if(u<0||u>=e.length)return null;let t=2,l=Math.max(0,u-t),n=Math.min(e.length-1,u+t),i=String(n+1).length,a=[];for(let r=l;r<=n;r++){let s=` ${String(r+1).padStart(i)} │ `;if(a.push({type:"source",gutter:s,text:e[r]}),r===u&&this.column!=null){let c=" ".repeat(this.column),h=Math.max(1,Math.min(this.length||1,e[r].length-this.column)),o="^".repeat(h),_=" ".repeat(i+2)+"│ ";a.push({type:"caret",gutter:_,text:`${c}${o}`})}}return a}}function m6(e){return e instanceof SyntaxError&&e.location!=null}function y6(e){return!(e instanceof SyntaxError)&&e.hash!=null}function t2(e,u,t){if(e instanceof d1){if(t&&!e.file)e.file=t;if(u&&!e.source)e.source=u;return e}if(m6(e))return d1.fromLexer(e,u,t);if(y6(e))return d1.fromParser(e,u,t);return new d1(e.message,{file:t,source:u,phase:"unknown"})}function x1(e,{source:u,file:t,color:l=!0}={}){return(e instanceof d1?e:t2(e,u,t)).format({color:l})}function t3(e,{source:u,file:t}={}){return(e instanceof d1?e:t2(e,u,t)).formatHTML()}function V1(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var N2=null;var m1=(e,u)=>e instanceof String?e[u]:void 0,j=(e)=>e instanceof String?e.valueOf():e,A6=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]),d6=new Set(["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try","throw"]),b6=new Set(["true","false","null","undefined","Infinity","NaN"]);function z2(e){if(!Array.isArray(e)||e.length===0)return!1;let u=e[0]?.valueOf?.()??e[0];if(A6.has(u))return!0;return e.length<=4&&!e.some(Array.isArray)}function _2(e){if(Array.isArray(e))return"(???)";if(typeof e==="number")return String(e);if(e===null)return"null";if(e==="")return'""';let u=String(e);if(u[0]==="/"&&u.indexOf(`
|
|
2355
|
+
`)>=0){let t=u.match(/\/([gimsuvy]*)$/),l=t?t[1]:"",n=u.slice(1);return n=l?n.slice(0,-l.length-1):n.slice(0,-1),`"/${n.split(`
|
|
2356
|
+
`).map((r)=>r.replace(/#.*$/,"").trim()).join("")}/${l}"`}return u}function K1(e,u=0,t=!1){if(!Array.isArray(e))return _2(e);if(t&&e[0]==="program"){let s=e[1],h=[Array.isArray(s)?"(program":"(program "+_2(s)],o=Array.isArray(s)?1:2;for(let _=o;_<e.length;_++){let m=K1(e[_],2,!1);h.push(m[0]==="("?" "+m:m)}return h.push(")"),h.join(`
|
|
2357
|
+
`)}let l=e[0];if(z2(e)&&e.slice(1).every((s)=>!Array.isArray(s)||z2(s))){let c=`(${e.map((h)=>Array.isArray(h)?K1(h,0,!1):_2(h)).join(" ")})`;if(!c.includes(`
|
|
2358
|
+
`))return" ".repeat(u)+c}let i=" ".repeat(u),a;if(Array.isArray(l)){if(a=K1(l,0,!1),a.includes(`
|
|
2359
|
+
`))a=a.split(`
|
|
2360
|
+
`).map((c,h)=>h===0?c:" ".repeat(u+2)+c).join(`
|
|
2361
|
+
`)}else a=_2(l);let r=[`${i}(${a}`],f=l==="block";for(let s=1;s<e.length;s++){let c=e[s];if(!Array.isArray(c))r[r.length-1]+=" "+_2(c);else{let h=z2(c)&&c.every((o)=>!Array.isArray(o)||z2(o));if(!f&&h){let o=K1(c,0,!1);if(!o.includes(`
|
|
2362
|
+
`)){r[r.length-1]+=" "+o;continue}}r.push(K1(c,u+2,!1))}}return r[r.length-1]+=")",r.join(`
|
|
2363
|
+
`)}class A1{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"emitProgram","&&":"emitLogicalAnd","||":"emitLogicalOr","+":"emitBinaryOp","-":"emitBinaryOp","*":"emitBinaryOp","/":"emitBinaryOp","%":"emitBinaryOp","**":"emitBinaryOp","==":"emitBinaryOp","===":"emitBinaryOp","!=":"emitBinaryOp","!==":"emitBinaryOp","<":"emitBinaryOp",">":"emitBinaryOp","<=":"emitBinaryOp",">=":"emitBinaryOp","??":"emitBinaryOp","&":"emitBinaryOp","|":"emitBinaryOp","^":"emitBinaryOp","<<":"emitBinaryOp",">>":"emitBinaryOp",">>>":"emitBinaryOp","%%":"emitModulo","%%=":"emitModuloAssign","//":"emitFloorDiv","//=":"emitFloorDivAssign","..":"emitRange","=":"emitAssignment","+=":"emitAssignment","-=":"emitAssignment","*=":"emitAssignment","/=":"emitAssignment","%=":"emitAssignment","**=":"emitAssignment","&&=":"emitAssignment","||=":"emitAssignment","??=":"emitAssignment","?=":"emitAssignment","&=":"emitAssignment","|=":"emitAssignment","^=":"emitAssignment","<<=":"emitAssignment",">>=":"emitAssignment",">>>=":"emitAssignment","...":"emitRange","!":"emitNot","~":"emitBitwiseNot","++":"emitIncDec","--":"emitIncDec","=~":"emitRegexMatch",instanceof:"emitInstanceof",in:"emitIn",of:"emitOf",typeof:"emitTypeof",delete:"emitDelete",new:"emitNew",array:"emitArray",object:"emitObject","map-literal":"emitMap",block:"emitBlock",".":"emitPropertyAccess","?.":"emitOptionalProperty","[]":"emitIndexAccess",optindex:"emitOptIndex",optcall:"emitOptCall","regex-index":"emitRegexIndex",".{}":"emitPick","?.{}":"emitOptPick",def:"emitDef","->":"emitThinArrow","=>":"emitFatArrow",return:"emitReturn",state:"emitState",computed:"emitComputed",readonly:"emitReadonly",effect:"emitEffect",gate:"emitGate",break:"emitBreak",continue:"emitContinue","?":"emitExistential",presence:"emitPresence","?:":"emitTernary",loop:"emitLoop","loop-n":"emitLoopN",await:"emitAwait",yield:"emitYield","yield-from":"emitYieldFrom",if:"emitIf","for-in":"emitForIn","for-of":"emitForOf","for-as":"emitForAs",while:"emitWhile",try:"emitTry",throw:"emitThrow",control:"emitControl",switch:"emitSwitch",when:"emitWhen",comprehension:"emitComprehension","object-comprehension":"emitObjectComprehension",class:"emitClass",super:"emitSuper",component:"emitComponent",render:"emitRender",offer:"emitOffer",accept:"emitAccept",enum:"emitEnum",schema:"emitSchema",import:"emitImport",export:"emitExport","export-default":"emitExportDefault","export-all":"emitExportAll","export-from":"emitExportFrom","do-iife":"emitDoIIFE",regex:"emitRegex","tagged-template":"emitTaggedTemplate",str:"emitString",symbol:"emitSymbol"};constructor(e={}){if(this.options=e,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=e.dataSection,this.sourceMap=e.sourceMap||null,e.reactiveVars)this.reactiveVars=new Set(e.reactiveVars)}error(e,u,{suggestion:t}={}){throw d1.fromSExpr(e,u,this.options.source,this.options.filename,t)}compile(e){if(this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.options.foldProjections)B3(e);this.collectProgramVariables(e);let u=this.emit(e);if(this.sourceMap)this.buildMappings();return u}buildMappings(){if(this._importEntries){let u=0;for(let t of this._importEntries){if(t.loc)this.sourceMap.addMapping(u,0,t.loc.r,t.loc.c);if(t.sexpr&&t.loc)this.recordSubMappings(t.code,t.sexpr,u);u+=t.code.split(`
|
|
2364
|
+
`).length}}if(!this._stmtEntries)return;let e=this._preambleLines;for(let u of this._stmtEntries){if(u.loc)this.sourceMap.addMapping(e,0,u.loc.r,u.loc.c);if(u.sexpr&&u.loc)this.recordSubMappings(u.code,u.sexpr,e);e+=u.code.split(`
|
|
2365
|
+
`).length}}static _isColInsideString(e,u){let t=!1,l="",n=0;for(let i=0;i<e.length&&i<u;i++){let a=e[i];if(t){if(a==="\\"){i++;continue}if(l==="`"&&a==="$"&&e[i+1]==="{"){n=1,t=!1,i++;continue}if(a===l)t=!1}else if(n>0){if(a==="{")n++;else if(a==="}"){if(n--,n===0)t=!0,l="`"}else if(a==='"'||a==="'"||a==="`")t=!0,l=a}else if(a==='"'||a==="'"||a==="`")t=!0,l=a}return t}recordSubMappings(e,u,t){let l=u.loc?u.loc.r:0,n=[];this.collectSubExprs(u,n);let i=e.split(`
|
|
2366
|
+
`),a=[0];for(let _=0;_<e.length;_++)if(e.charCodeAt(_)===10)a.push(_+1);let r=(_)=>{let m=0,y=a.length-1;while(m<=y){let w=m+y>>1;if(a[w]<=_)m=w+1;else y=w-1}return y},f=new Set,s=new Map,c=(_)=>{if(s.has(_))return s.get(_);let m=i[_],y=m&&m.match(/\/\/ @rip-src:(\d+)\s*$/),w=y?parseInt(y[1],10):null;return s.set(_,w),w},h=new Map,o=(_)=>{if(h.has(_))return h.get(_);let m=i[_],y=[];if(m&&/\)\s*(\{|=>)\s*$/.test(m)){let w=/\b[a-zA-Z_$][\w$]*\??\s*:\s*\{/g,b;while((b=w.exec(m))!==null){let D=b.index+b[0].length-1;if(A1._isColInsideString(m,D))continue;let A=1,d=D+1,R=!1,E="";while(d<m.length&&A>0){let O=m[d];if(R){if(O==="\\"){d+=2;continue}if(O===E)R=!1}else if(O==='"'||O==="'"||O==="`")R=!0,E=O;else if(O==="{")A++;else if(O==="}")A--;d++}y.push([D,d]),w.lastIndex=d}}return h.set(_,y),y};for(let{name:_,origLine:m,origCol:y}of n){let w=_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),b=new RegExp("\\b"+w+"\\b","g"),D,A=null,d=1/0,R=null,E=1/0,O=m-l;while((D=b.exec(e))!==null){let $=r(D.index),S=D.index-a[$],g=i[$],q=c($),H=q!=null&&q===m;if(g&&A1._isColInsideString(g,S)&&!H)continue;let B=o($);if(B.length&&B.some(([N,o1])=>S>=N&&S<o1))continue;let L=t+$,W=H?Math.abs(S-y):Math.abs($-O)*1e4+Math.abs(S-y);if(W<d)d=W,A={genLine:L,genCol:S};let e1=L+":"+S;if(!f.has(e1)&&W<E)E=W,R={genLine:L,genCol:S}}let U=R||A;if(U)this.sourceMap.addMapping(U.genLine,U.genCol,m,y),f.add(U.genLine+":"+U.genCol)}}collectSubExprs(e,u){if(!Array.isArray(e))return;let t=e[0];if(Array.isArray(t)||t!=null&&typeof t!=="string"&&!(t instanceof String)){for(let n=0;n<e.length;n++)if(Array.isArray(e[n]))this.collectSubExprs(e[n],u);if(Array.isArray(e._anchors))for(let n of e._anchors)u.push(n);return}if(e.loc){t=j(t);let n=null,i=e.loc.c;if(t==="."){if(typeof e[2]==="string"){if(n=e[2],typeof e[1]==="string")i=e.loc.c+e[1].length+1}}else if(typeof t==="string"&&/^[=+\-*/%<>!&|?~^]|^\.{1,3}$|^def$|^class$|^state$|^computed$|^readonly$|^for-/.test(t)){if(typeof e[1]==="string"&&/^[a-zA-Z_$]/.test(e[1])){if(n=e[1],t==="...")i=e.loc.c+3}}else if(typeof t==="string"&&/^[a-zA-Z_$]/.test(t))n=t;if(n)u.push({name:n,origLine:e.loc.r,origCol:i});if((t==="->"||t==="=>")&&Array.isArray(e[2])&&j(e[2][0])==="block"){let a=e[2];for(let r=1;r<a.length;r++){let f=a[r],s=typeof f==="string"||f instanceof String?j(f):null;if(s&&/^[a-zA-Z_$][\w$]*$/.test(s)&&!f.loc){let c=this._scanForIdentAfter(s,e.loc);if(c)u.push(c)}}}}if(Array.isArray(e._anchors))for(let n of e._anchors)u.push(n);let l=t==="->"||t==="=>"?2:1;for(let n=l;n<e.length;n++)if(Array.isArray(e[n]))this.collectSubExprs(e[n],u)}_scanForIdentAfter(e,u){let t=this.options&&this.options.source;if(!t||!u)return null;let l=this._sourceLinesCache||(this._sourceLinesCache=t.split(`
|
|
2367
|
+
`)),n=new RegExp("\\b"+e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b","g"),i=u.r,a=u.c;for(let r=i;r<Math.min(l.length,i+20);r++){let f=l[r];if(!f)continue;n.lastIndex=r===i?a:0;let s;while((s=n.exec(f))!==null){if(A1._isColInsideString(f,s.index))continue;return{name:e,origLine:r,origCol:s.index}}}return null}collectProgramVariables(e){if(!Array.isArray(e))return;let[u,...t]=e;if(u=j(u),Array.isArray(u)){e.forEach((l)=>this.collectProgramVariables(l));return}if(u==="export"||u==="export-default"||u==="export-all"||u==="export-from")return;if(u==="state"||u==="computed"){let[l]=t,n=j(l)??l;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(n);return}if(u==="readonly"){let[l]=t,n=j(l)??l;if(!this.readonlyVars)this.readonlyVars=new Set;this.readonlyVars.add(n);return}if(u==="component")return;if(u==="enum")return;if(A1.ASSIGNMENT_OPS.has(u)){let[l,n]=t;if(typeof l==="string"||l instanceof String){let i=j(l);if(!this.reactiveVars?.has(i)&&!this.readonlyVars?.has(i))this.programVars.add(i)}else if(this.is(l,"array"))this.collectVarsFromArray(l,this.programVars);else if(this.is(l,"object"))this.collectVarsFromObject(l,this.programVars);this.collectProgramVariables(n);return}if(u==="for-in"||u==="for-of"||u==="for-as"){t.slice(1).forEach((l)=>this.collectProgramVariables(l));return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="if"){let[l,n,i]=t;if(this.collectProgramVariables(l),this.collectProgramVariables(n),i)this.collectProgramVariables(i);return}if(u==="try"){if(this.collectProgramVariables(t[0]),t.length>=2&&Array.isArray(t[1])&&t[1].length===2&&t[1][0]!=="block"){let[l,n]=t[1];if(l&&this.is(l,"object"))l.slice(1).forEach((i)=>{if(Array.isArray(i)&&i.length===2&&typeof i[1]==="string")this.programVars.add(i[1])});else if(l&&this.is(l,"array"))l.slice(1).forEach((i)=>{if(typeof i==="string")this.programVars.add(i)});this.collectProgramVariables(n)}if(t.length===3)this.collectProgramVariables(t[2]);else if(t.length===2&&(!Array.isArray(t[1])||t[1][0]==="block"))this.collectProgramVariables(t[1]);return}t.forEach((l)=>this.collectProgramVariables(l))}collectFunctionVariables(e){let u=new Set,t=(l)=>{if(!Array.isArray(l))return;let[n,...i]=l;if(n=j(n),Array.isArray(n)){l.forEach((a)=>t(a));return}if(A1.ASSIGNMENT_OPS.has(n)){let[a,r]=i;if(typeof a==="string"||a instanceof String)u.add(j(a));else if(this.is(a,"array"))this.collectVarsFromArray(a,u);else if(this.is(a,"object"))this.collectVarsFromObject(a,u);t(r);return}if(n==="for-in"||n==="for-of"||n==="for-as"){i.slice(1).forEach(t);return}if(n==="def"||n==="->"||n==="=>"||n==="effect")return;if(n==="try"){if(t(i[0]),i.length>=2&&Array.isArray(i[1])&&i[1].length===2&&i[1][0]!=="block"){let[a,r]=i[1];if(a&&this.is(a,"object"))a.slice(1).forEach((f)=>{if(Array.isArray(f)&&f.length===2&&typeof f[1]==="string")u.add(f[1])});else if(a&&this.is(a,"array"))a.slice(1).forEach((f)=>{if(typeof f==="string")u.add(f)});t(r)}if(i.length===3)t(i[2]);else if(i.length===2&&(!Array.isArray(i[1])||i[1][0]==="block"))t(i[1]);return}i.forEach((a)=>t(a))};return t(e),u}collectTypedLocals(e){let u=new Map,t=(l)=>{if(!Array.isArray(l))return;let[n,...i]=l;if(n=j(n),Array.isArray(n)){l.forEach(t);return}if(A1.ASSIGNMENT_OPS.has(n)){let[a,r]=i;if(a instanceof String&&a.type&&!u.has(j(a)))u.set(j(a),a.type);t(r);return}if(n==="def"||n==="->"||n==="=>"||n==="effect")return;i.forEach(t)};return t(e),u}emit(e,u="statement"){if(e instanceof String){if(m1(e,"bang")===!0)return`await ${j(e)}()`;if(m1(e,"optional"))return`(${j(e)} != null)`;if(m1(e,"delimiter")==="///"&&m1(e,"heregex")){let r=j(e),f=r.match(/^\/(.*)\/([gimsuvy]*)$/s);if(f){let[,s,c]=f;return`/${this.processHeregex(s)}/${c}`}return r}let a=m1(e,"quote");if(a){let r=j(e);if(a==='"""'||a==="'''"){let s=this.extractStringContent(e);return s=s.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${s}\``}if(r[0]===a)return r;let f=r.slice(1,-1);return`${a}${f}${a}`}e=j(e)}if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",e);let a=e.slice(1,-1);if(a.includes(`
|
|
2368
|
+
`))return`\`${a.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let r=a.includes("'")&&!a.includes('"')?'"':"'",f=a.replace(new RegExp(r,"g"),`\\${r}`);return`${r}${f}${r}`}if(this.reactiveVars?.has(e)&&!this.suppressReactiveUnwrap)return`${e}.value`;return e}if(typeof e==="number")return String(e);if(e===null||e===void 0)return"null";if(!Array.isArray(e))this.error(`Invalid s-expression: ${JSON.stringify(e)}`,e);let[t,...l]=e,n=m1(t,"bang");t=j(t);let i=A1.GENERATORS[t];if(i)return this[i](t,l,u,e);if(typeof t==="string"&&!t.startsWith('"')&&!t.startsWith("'")){if(A1.NUMBER_START_RE.test(t))return t;if(t==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${this._emitArgs(l)})`;let a=this._tryPostfixCall(t,l,u);if(a)return a;let r=n===!0,f=`${this.emit(t,"value")}(${this._emitArgs(l)})`;return r?`await ${f}`:f}if(Array.isArray(t)&&typeof t[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(t[0]))return`(${e.map((r)=>this.emit(r,"value")).join(", ")})`}if(Array.isArray(t)){if(t[0]==="."&&(t[2]==="new"||j(t[2])==="new")){let c=t[1],h=this.emit(c,"value");return`new ${Array.isArray(c)?`(${h})`:h}(${this._emitArgs(l)})`}let a=this._tryPostfixCall(t,l,u);if(a)return a;let r=!1,f;if(t[0]==="."&&m1(t[2],"bang")===!0){r=!0;let[c,h]=t.slice(1),o=this.emit(c,"value");f=`${A1.NUMBER_LITERAL_RE.test(o)||(this.is(c,"object")||this.is(c,"await")||this.is(c,"yield"))||/^(await|yield)\s/.test(o)?`(${o})`:o}.${j(h)}`}else f=this.emit(t,"value");let s=`${f}(${this._emitArgs(l)})`;return r?`await ${s}`:s}this.error(`Unknown s-expression type: ${t}`,e)}emitProgram(e,u,t,l){let n="",i=[],a=[];for(let _ of u){if(!Array.isArray(_)){a.push(_);continue}if(_[0]==="import")i.push(_);else a.push(_)}let r=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],f=a.map((_,m)=>{let y=a.length===1&&i.length===0,w=this.is(_,"object"),b=w&&_.length===2&&Array.isArray(_[1])&&Array.isArray(_[1][2])&&_[1][2][0]==="comprehension",D=this.is(_,"comprehension")||this.is(_,"object-comprehension")||this.is(_,"do-iife"),A=this.programVars.size===0,d=y&&w&&A&&!D&&!b,E=m===a.length-1&&D,O;if(d)O=`(${this.emit(_,"value")})`;else if(E)O=this.emit(_,"value");else O=this.emit(_,"statement");if(O&&!O.endsWith(";")){let $=Array.isArray(_)?_[0]:null;if(!r.includes($)||!O.endsWith("}"))O+=";"}let U=Array.isArray(_)?_.loc:null;return{code:O,loc:U,sexpr:Array.isArray(_)?_:null}}),s=f.map((_)=>_.code).join(`
|
|
2369
|
+
`),c=!1;if(i.length>0){let _=i.map((m)=>{return{code:this.addSemicolon(m,this.emit(m,"statement")),loc:Array.isArray(m)?m.loc:null,sexpr:Array.isArray(m)?m:null}});this._importEntries=_,n+=_.map((m)=>m.code).join(`
|
|
2370
|
+
`),c=!0}if(this.programVars.size>0){let _=this.programVars.has("_");if(_)this.programVars.delete("_");if(this.programVars.size>0){let m=Array.from(this.programVars).sort().join(", ");if(m){if(c)n+=`
|
|
2371
|
+
`;n+=`let ${m};
|
|
2372
|
+
`,c=!0}}if(_){if(c)n+=`
|
|
2373
|
+
`;n+=`var _;
|
|
2374
|
+
`,c=!0}}let h=this.options.skipPreamble,o=this.options.skipRuntimes;if(!h){if(c)n+=`
|
|
2375
|
+
`;n+=u2(),c=!0;let _=o?"var":"const";if(this.helpers.has("slice"))n+=`${_} slice = [].slice;
|
|
2376
|
+
`,c=!0;if(this.helpers.has("modulo"))n+=`${_} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
2377
|
+
`,c=!0;if(this.helpers.has("toMatchable"))n+=`${_} toMatchable = (v, allowNewlines) => {
|
|
2378
|
+
`,n+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
2379
|
+
`,n+=` if (v == null) return "";
|
|
2380
|
+
`,n+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
2381
|
+
`,n+=` if (typeof v === "symbol") return v.description || "";
|
|
2382
|
+
`,n+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
2383
|
+
`,n+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
2384
|
+
`,n+=` }
|
|
2385
|
+
`,n+=` if (Array.isArray(v)) return v.join(",");
|
|
2386
|
+
`,n+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
2387
|
+
`,n+=` try { return v.toString(); } catch { return ""; }
|
|
2388
|
+
`,n+=` }
|
|
2389
|
+
`,n+=` return "";
|
|
2390
|
+
`,n+=`};
|
|
2391
|
+
`,c=!0}if(this.usesReactivity&&!h){if(o)n+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
2392
|
+
`;else if(typeof globalThis<"u"&&globalThis.__rip)n+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
2393
|
+
`;else n+=this.getReactiveRuntime();c=!0}if(this.usesTemplates&&!h){if(o)n+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __gateBind, __Component } = globalThis.__ripComponent;
|
|
2394
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)n+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __gateBind, __Component } = globalThis.__ripComponent;
|
|
2395
|
+
`;else n+=this.getComponentRuntime();c=!0}if(this.usesSchemas&&!h){if(o)n+=`var { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = globalThis.__ripSchema;
|
|
2396
|
+
`;else if(typeof globalThis<"u"&&globalThis.__ripSchema)n+=`const { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = globalThis.__ripSchema;
|
|
2397
|
+
`;else n+=this.getSchemaRuntime();c=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!h)n+=`var DATA;
|
|
1530
2398
|
_setDataSection();
|
|
1531
|
-
`,
|
|
1532
|
-
`;if(this._stmtEntries=
|
|
1533
|
-
`).length-1,
|
|
2399
|
+
`,c=!0;if(c&&n.length>0)n+=`
|
|
2400
|
+
`;if(this._stmtEntries=f,this._preambleLines=n.length===0?0:n.split(`
|
|
2401
|
+
`).length-1,n+=s,this.dataSection!==null&&this.dataSection!==void 0)n+=`
|
|
1534
2402
|
|
|
1535
2403
|
function _setDataSection() {
|
|
1536
2404
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
1537
|
-
}`;return u}emitBinaryOp(f,_,c,n){if((f==="+"||f==="-")&&_.length===1)return`(${f}${this.emit(_[0],"value")})`;let[u,l]=_;if(f==="*"){let w=u?.valueOf?.()??u;if(typeof w==="string"&&/^["']/.test(w))return`${this.emit(u,"value")}.repeat(${this.emit(l,"value")})`}let i=new Set(["<",">","<=",">="]);if(i.has(f)&&Array.isArray(u)){let w=u[0]?.valueOf?.()??u[0];if(i.has(w)){let D=this.emit(u[1],"value"),h=this.emit(u[2],"value"),A=this.emit(l,"value");return`((${D} ${w} ${h}) && (${h} ${f} ${A}))`}}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.emit(u,"value")} ${f} ${this.emit(l,"value")})`}emitModulo(f,_){let[c,n]=_;return this.helpers.add("modulo"),`modulo(${this.emit(c,"value")}, ${this.emit(n,"value")})`}emitModuloAssign(f,_){let[c,n]=_;this.helpers.add("modulo");let u=this.emit(c,"value"),l=this.emit(n,"value");return`${u} = modulo(${u}, ${l})`}emitFloorDiv(f,_){let[c,n]=_;return`Math.floor(${this.emit(c,"value")} / ${this.emit(n,"value")})`}emitFloorDivAssign(f,_){let[c,n]=_,u=this.emit(c,"value"),l=this.emit(n,"value");return`${u} = Math.floor(${u} / ${l})`}emitAssignment(f,_,c,n){let[u,l]=_,i=f==="?="?"??=":f;if(this.is(u,"array")||this.is(u,"object"))this._validateBindingPattern(u,n);let w=this._findOptionalInTarget(u);if(w){let O=this.emit(w.guard,"value"),W=this.emit(w.rewritten,"value"),K=this.emit(l,"value");if(c==="value")return`(${O} != null ? (${W} ${i} ${K}) : undefined)`;return`if (${O} != null) ${W} ${i} ${K}`}let D=this.is(l,"->")||this.is(l,"=>")||this.is(l,"def");if(u instanceof String&&i1(u,"await")!==void 0&&!D){let O=i1(u,"await")===!0?"!":"&";this.error(`Cannot use ${O} sigil in variable declaration '${t(u)}'`,n)}if(u instanceof String&&i1(u,"await")===!0&&D)this.nextFunctionIsVoid=!0;let h=this.is(u,"array",0),A=this.is(u,"object",0);if(h||A){let O=this.emit(l,"value");return A&&c==="statement"?`(${O})`:O}if(Array.isArray(l)&&i==="="&&l[0]==="control"){let[,O,W,K]=l,Y=t(O),q=K[0]==="return",y=this.emit(u,"value"),Z=this.emit(W,"value"),J=K.length>1?K[1]:null,X=q?J?`return ${this.emit(J,"value")}`:"return":J?`throw ${this.emit(J,"value")}`:"throw new Error()";if(c==="value"){if(Y==="??")return`(() => { const __v = ${Z}; if (__v == null) ${X}; return (${y} = __v); })()`;if(Y==="||")return`(() => { const __v = ${Z}; if (!__v) ${X}; return (${y} = __v); })()`;return`(() => { const __v = ${Z}; if (__v) ${X}; return (${y} = __v); })()`}if(Y==="??")return`if ((${y} = ${Z}) == null) ${X}`;if(Y==="||")return`if (!(${y} = ${Z})) ${X}`;return`if ((${y} = ${Z})) ${X}`}if(this.is(u,"array")){let O=u.slice(1).findIndex((W)=>this.is(W,"...")||W==="...");if(O!==-1&&O<u.length-2){let W=u.slice(1),K=W.slice(O+1),Y=K.length;if(Y>0){let q=this.emit(l,"value"),Z=W.slice(0,O).map((I)=>I===","?"":typeof I==="string"?I:this.emit(I,"value")).join(", "),J=K.map((I)=>I===","?"":typeof I==="string"?I:this.emit(I,"value")).join(", ");this.helpers.add("slice"),W.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])});let X=W[O],N=this.is(X,"...")?X[1]:null,S=[];if(Z)S.push(`[${Z}] = ${q}`);if(N)S.push(`[...${N}] = ${q}.slice(${O}, -${Y})`);return S.push(`[${J}] = slice.call(${q}, -${Y})`),S.join(", ")}}}if(c==="statement"&&f==="="&&Array.isArray(l)&&(l[0]==="||"||l[0]==="&&")&&l.length===3){let[O,W,K]=l;if(this.is(K,"if")&&K.length===3){let[,Y,q]=K,y=Array.isArray(q)&&q.length===1?q[0]:q,Z=[O,W,y],J=this.emit(u,"value"),X=this.emit(Y,"value"),N=this.emit(Z,"value");return`if (${X}) ${J} = ${N}`}}if(c==="statement"&&f==="="&&Array.isArray(l)&&l.length===3){let[O,W,K]=l,Y=Array.isArray(K)&&K.length===1&&(!Array.isArray(K[0])||K[0][0]!=="block");if(O==="if"&&Y){let q=Array.isArray(K)&&K.length===1?K[0]:K,y=this.emit(u,"value"),Z=this.unwrapLogical(this.emit(W,"value")),J=this.emit(q,"value");return`if (${Z}) ${y} = ${J}`}}let R;if(u instanceof String&&i1(u,"await")!==void 0)R=t(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))R=`${u}.value`;else R=this.emit(u,"value");let U=this._componentName,$=this._componentTypeParams,z=this._schemaName;if(this.is(l,"component")&&(typeof u==="string"||u instanceof String))this._componentName=t(u),this._componentTypeParams=u.typeParams||"";if(this.is(l,"schema")&&(typeof u==="string"||u instanceof String))this._schemaName=t(u);let M=this.emit(l,"value");if(this._componentName=U,this._componentTypeParams=$,this._schemaName=z,!(this.is(l,"object")||this.is(l,".{}")||this.is(l,"?.{}")))M=this.unwrap(M);let H=c==="value",Q=c==="statement"&&this.is(u,"object");if(H||Q)return`(${R} ${i} ${M})`;return`${R} ${i} ${M}`}emitPropertyAccess(f,_,c,n){let[u,l]=_;if(this._atParamMap&&u==="this"){let h=this._atParamMap.get(t(l));if(h)return h}let i=this.emit(u,"value"),D=D1.NUMBER_LITERAL_RE.test(i)||i.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${i})`:i;if(i1(l,"await")===!0)return`await ${D}.${t(l)}()`;if(i1(l,"predicate"))return`(${D}.${t(l)} != null)`;return`${D}.${t(l)}`}emitOptionalProperty(f,_){let[c,n]=_;return`${this.emit(c,"value")}?.${n}`}emitPick(f,_,c,n){let[u,...l]=_,i=this.emit(u,"value"),w=this._isSimplePickSource(u),D=w?i:"_",h=l.map(([A,R,U])=>{let $=`${D}.${t(A)}`;if(U!==null&&U!==void 0)$=`(${$} ?? ${this.emit(U,"value")})`;return`${t(R)}: ${$}`}).join(", ");if(w)return`({${h}})`;return`((_) => ({${h}}))(${i})`}emitOptPick(f,_,c,n){let[u,...l]=_,i=this.emit(u,"value"),w=this._isSimplePickSource(u),D=w?i:"_",h=l.map(([A,R,U])=>{let $=`${D}.${t(A)}`;if(U!==null&&U!==void 0)$=`(${$} ?? ${this.emit(U,"value")})`;return`${t(R)}: ${$}`}).join(", ");if(w)return`(${i} == null ? undefined : {${h}})`;return`((_) => _ == null ? undefined : ({${h}}))(${i})`}_isSimplePickSource(f){if(typeof f!=="string")return!1;return f==="this"||f==="@"||/^[A-Za-z_$][\w$]*$/.test(f)}emitRegexIndex(f,_){let[c,n,u]=_;this.helpers.add("toMatchable"),this.programVars.add("_");let l=this.emit(c,"value"),i=this.emit(n,"value"),w=u!==null?this.emit(u,"value"):"0",D=i.includes("/m")?", true":"";return`(_ = toMatchable(${l}${D}).match(${i})) && _[${w}]`}emitIndexAccess(f,_){let[c,n]=_;if(this.is(n,"..")||this.is(n,"...")){let u=n[0]==="..",l=this.emit(c,"value"),[i,w]=n.slice(1),D=(U)=>{if(U===null)return null;let $=t(U)??U;if(typeof $==="number")return $;if(typeof $==="string"&&/^\d+$/.test($))return+$;if(Array.isArray(U)&&U[0]==="-"&&U.length===2){let z=t(U[1])??U[1];if(typeof z==="number")return-z;if(typeof z==="string"&&/^\d+$/.test(z))return-z}return null},h=(U,$,z)=>{let M=D(z);if(M!==null&&M!==-1)return`${l}.slice(${U}, ${M+1})`;return`${l}.slice(${U}, +${$} + 1 || 9e9)`};if(i===null&&w===null)return`${l}.slice()`;if(i===null){if(u&&this.is(w,"-",1)&&(t(w[1])??w[1])==1)return`${l}.slice(0)`;let U=this.emit(w,"value");return u?h("0",U,w):`${l}.slice(0, ${U})`}if(w===null)return`${l}.slice(${this.emit(i,"value")})`;let A=this.emit(i,"value");if(u&&this.is(w,"-",1)&&(t(w[1])??w[1])==1)return`${l}.slice(${A})`;let R=this.emit(w,"value");return u?h(A,R,w):`${l}.slice(${A}, ${R})`}if(this.is(n,"-",1)){let u=t(n[1])??n[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(c,"value")}.at(-${u})`}return`${this.emit(c,"value")}[${this.unwrap(this.emit(n,"value"))}]`}emitOptIndex(f,_){let[c,n]=_;if(this.is(n,"-",1)){let u=t(n[1])??n[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(c,"value")}?.at(-${u})`}return`${this.emit(c,"value")}?.[${this.emit(n,"value")}]`}emitOptCall(f,_){let[c,...n]=_;return`${this.emit(c,"value")}?.(${n.map((u)=>this.emit(u,"value")).join(", ")})`}emitDef(f,_,c,n){let[u,l,i]=_,w=i1(u,"await")===!0,D=t(u),h=this.emitParamList(l),A=this.emitFunctionBody(i,l,w),R=this.containsAwait(i),U=this.containsYield(i);return`${R?"async ":""}function${U?"*":""} ${D}(${h}) ${A}`}emitThinArrow(f,_,c,n){let[u,l]=_;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(l))u=["it"];let i=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let w=this.emitParamList(u),D=this.emitFunctionBody(l,u,i),h=this.containsAwait(l),A=this.containsYield(l),R=`${h?"async ":""}function${A?"*":""}(${w}) ${D}`;return c==="value"?`(${R})`:R}emitFatArrow(f,_,c,n){let[u,l]=_;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(l))u=["it"];let i=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let w=this.emitParamList(u),h=u.length===1&&typeof u[0]==="string"&&!w.includes("=")&&!w.includes("...")&&!w.includes("[")&&!w.includes("{")?w:`(${w})`,R=this.containsAwait(l)?"async ":"";if(!i){if(this.is(l,"block")&&l.length===2){let $=l[1],z=Array.isArray($)?$[0]:null;if(z!=="return"&&!h0.has(z)){let M=this.emit($,"value");if(M[0]==="{")M=`(${M})`;return`${R}${h} => ${M}`}}if(!Array.isArray(l)||l[0]!=="block"){let $=this.emit(l,"value");if($[0]==="{")$=`(${$})`;return`${R}${h} => ${$}`}}let U=this.emitFunctionBody(l,u,i);return`${R}${h} => ${U}`}emitReturn(f,_,c,n){if(_.length===0)return"return";let[u]=_;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))this.error("Cannot return a value from a void function (declared with !)",n);if(this.is(u,"if")){let[,l,i,...w]=u;if(w.length===0){let D=Array.isArray(i)&&i.length===1?i[0]:i;return`if (${this.emit(l,"value")}) return ${this.emit(D,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,l,i]=u[1],w=Array.isArray(i)&&i.length===1?i[0]:i;return`if (${this.emit(l,"value")}) return ${this.emit(["new",w],"value")}`}return`return ${this.emit(u,"value")}`}emitState(f,_){let[c,n]=_;this.usesReactivity=!0;let u=t(c)??c;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.emit(n,"value")})`}emitComputed(f,_){let[c,n]=_;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=t(c)??c;if(this.reactiveVars.add(u),this.is(n,"block")&&n.length>2)return`const ${u} = __computed(() => ${this.emitFunctionBody(n)})`;return`const ${u} = __computed(() => ${this.emit(n,"value")})`}emitReadonly(f,_){let[c,n]=_;return`const ${t(c)??c} = ${this.emit(n,"value")}`}emitEffect(f,_){let[c,n]=_;this.usesReactivity=!0;let u;if(this.is(n,"block"))u=this.emitFunctionBody(n);else if(this.is(n,"->")||this.is(n,"=>")){let i=this.emit(n,"value");if(c)return`const ${t(c)??this.emit(c,"value")} = __effect(${i})`;return`__effect(${i})`}else u=`{ ${this.emit(n,"value")}; }`;let l=`__effect(() => ${u})`;if(c)return`const ${t(c)??this.emit(c,"value")} = ${l}`;return l}emitBreak(){return"break"}emitContinue(){return"continue"}emitExistential(f,_){return`(${this.emit(_[0],"value")} != null)`}emitPresence(f,_){return`(${this.emit(_[0],"value")} ? true : undefined)`}emitTernary(f,_,c){let[n,u,l]=_;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)&&!u.parenthesized){let w=this.emit(u[1],"value"),D=this.emit(u[2],"value"),h=this.emit(l,"value");return`${w} = (${this.unwrap(this.emit(n,"value"))} ? ${D} : ${h})`}return`(${this.unwrap(this.emit(n,"value"))} ? ${this.emit(u,"value")} : ${this.emit(l,"value")})`}emitPipe(f,_){let[c,n]=_,u=this.emit(c,"value");if(Array.isArray(n)&&n.length>1){let l=n[0];if(Array.isArray(l)||typeof l==="string"&&/^[a-zA-Z_$]/.test(l)){let w=this.emit(l,"value"),D=n.slice(1).map((h)=>this.emit(h,"value"));return`${w}(${u}, ${D.join(", ")})`}}return`${this.emit(n,"value")}(${u})`}emitLoop(f,_){return`while (true) ${this.emitLoopBody(_[0])}`}emitLoopN(f,_){let[c,n]=_;return`for (let it = 0; it < ${this.emit(c,"value")}; it++) ${this.emitLoopBody(n)}`}emitAwait(f,_){return`await ${this.emit(_[0],"value")}`}emitYield(f,_){return _.length===0?"yield":`yield ${this.emit(_[0],"value")}`}emitYieldFrom(f,_){return`yield* ${this.emit(_[0],"value")}`}emitIf(f,_,c,n){let[u,l,...i]=_;return c==="value"?this.emitIfAsExpression(u,l,i):this.emitIfAsStatement(u,l,i)}emitForIn(f,_,c,n){let[u,l,i,w,D]=_;if(c==="value"&&this.comprehensionDepth===0){let F=["for-in",u,l,i];return this.emit(["comprehension",D,[F],w?[w]:[]],c)}let h=Array.isArray(u)?u:[u],A=h.length===0,[R,U]=A?["_i",null]:h,$=this.is(R,"array")||this.is(R,"object")?this.emitDestructuringPattern(R):R;if(i&&i!==null){let F=this.emit(l,"value"),H=U||"_i",Q=this.emit(i,"value"),O=this.is(i,"-",1),W=O&&(i[1]==="1"||i[1]===1||t(i[1])==="1"),K=!O&&(i==="1"||i===1||t(i)==="1"),Y;if(W)Y=`for (let ${H} = ${F}.length - 1; ${H} >= 0; ${H}--) `;else if(K)Y=`for (let ${H} = 0; ${H} < ${F}.length; ${H}++) `;else if(O)Y=`for (let ${H} = ${F}.length - 1; ${H} >= 0; ${H} += ${Q}) `;else Y=`for (let ${H} = 0; ${H} < ${F}.length; ${H} += ${Q}) `;if(this.is(D,"block")){let q=D.slice(1);this.indentLevel++;let y=[];if(!A)y.push(`let ${$} = ${F}[${H}];`);if(w)y.push(`if (${this.emit(w,"value")}) {`),this.indentLevel++,y.push(...this.formatStatements(q)),this.indentLevel--,y.push(this.indent()+"}");else y.push(...q.map((Z)=>this.addSemicolon(Z,this.emit(Z,"statement"))));return this.indentLevel--,Y+`{
|
|
1538
|
-
|
|
2405
|
+
}`;return n}emitBinaryOp(e,u,t,l){if((e==="+"||e==="-")&&u.length===1)return`(${e}${this.emit(u[0],"value")})`;let[n,i]=u;if(e==="*"){let r=n?.valueOf?.()??n;if(typeof r==="string"&&/^["']/.test(r))return`${this.emit(n,"value")}.repeat(${this.emit(i,"value")})`}let a=new Set(["<",">","<=",">=","==","===","!=","!=="]);if(a.has(e)&&Array.isArray(n)&&!n.parenthesized){let r=n[0]?.valueOf?.()??n[0];if(a.has(r)){let f=(o)=>o==="=="?"===":o==="!="?"!==":o,s=this.emit(n,"value"),c=this.emit(n[2],"value"),h=this.emit(i,"value");return`(${s} && (${c} ${f(e)} ${h}))`}}if(e==="==")e="===";if(e==="!=")e="!==";if(e==="**"&&Array.isArray(n)){let r=new Set(["!","~","typeof","void","delete","await","not","+","-"]),f=n[0]?.valueOf?.()??n[0];if(r.has(f)){let s=this.emit(n,"value");if(!s.startsWith("("))s=`(${s})`;return`(${s} ** ${this.emit(i,"value")})`}}return`(${this.emit(n,"value")} ${e} ${this.emit(i,"value")})`}emitModulo(e,u){let[t,l]=u;return this.helpers.add("modulo"),`modulo(${this.emit(t,"value")}, ${this.emit(l,"value")})`}emitModuloAssign(e,u){let[t,l]=u;this.helpers.add("modulo");let n=this.emit(t,"value"),i=this.emit(l,"value");return`${n} = modulo(${n}, ${i})`}emitFloorDiv(e,u){let[t,l]=u;return`Math.floor(${this.emit(t,"value")} / ${this.emit(l,"value")})`}emitFloorDivAssign(e,u){let[t,l]=u,n=this.emit(t,"value"),i=this.emit(l,"value");return`${n} = Math.floor(${n} / ${i})`}emitAssignment(e,u,t,l){let[n,i]=u,a=e==="?="?"??=":e;if(this.is(n,"array")||this.is(n,"object"))this._validateBindingPattern(n,l);let r=this._findOptionalInTarget(n);if(r){let D=this.emit(r.guard,"value"),A=this.emit(r.rewritten,"value"),d=this.emit(i,"value");if(t==="value")return`(${D} != null ? (${A} ${a} ${d}) : undefined)`;return`if (${D} != null) ${A} ${a} ${d}`}this.applyVoidMarker(n,i,l);let f=this.is(n,"array",0),s=this.is(n,"object",0);if(f||s){let D=this.emit(i,"value");return s&&t==="statement"?`(${D})`:D}if(Array.isArray(i)&&a==="="&&i[0]==="control"){let[,D,A,d]=i,R=j(D),E=d[0]==="return",O=this.emit(n,"value"),U=this.emit(A,"value"),$=d.length>1?d[1]:null,S=E?$?`return ${this.emit($,"value")}`:"return":$?`throw ${this.emit($,"value")}`:"throw new Error()";if(t==="value"){if(R==="??")return`(() => { const __v = ${U}; if (__v == null) ${S}; return (${O} = __v); })()`;if(R==="||")return`(() => { const __v = ${U}; if (!__v) ${S}; return (${O} = __v); })()`;return`(() => { const __v = ${U}; if (__v) ${S}; return (${O} = __v); })()`}if(R==="??")return`if ((${O} = ${U}) == null) ${S}`;if(R==="||")return`if (!(${O} = ${U})) ${S}`;return`if ((${O} = ${U})) ${S}`}if(this.is(n,"array")){let D=n.slice(1).findIndex((A)=>this.is(A,"...")||A==="...");if(D!==-1&&D<n.length-2){let A=n.slice(1),d=A.slice(D+1),R=d.length;if(R>0){let E=this.emit(i,"value"),U=A.slice(0,D).map((H)=>H===","?"":typeof H==="string"?H:this.emit(H,"value")).join(", "),$=d.map((H)=>H===","?"":typeof H==="string"?H:this.emit(H,"value")).join(", ");this.helpers.add("slice"),A.forEach((H)=>{if(H===","||H==="...")return;if(typeof H==="string")this.programVars.add(H);else if(this.is(H,"...")&&typeof H[1]==="string")this.programVars.add(H[1])});let S=A[D],g=this.is(S,"...")?S[1]:null,q=[];if(U)q.push(`[${U}] = ${E}`);if(g)q.push(`[...${g}] = ${E}.slice(${D}, -${R})`);return q.push(`[${$}] = slice.call(${E}, -${R})`),q.join(", ")}}}if(t==="statement"&&e==="="&&Array.isArray(i)&&(i[0]==="||"||i[0]==="&&")&&i.length===3){let[D,A,d]=i;if(this.is(d,"if")&&d.length===3){let[,R,E]=d,O=Array.isArray(E)&&E.length===1?E[0]:E,U=[D,A,O],$=this.emit(n,"value"),S=this.emit(R,"value"),g=this.emit(U,"value");return`if (${S}) ${$} = ${g}`}}if(t==="statement"&&e==="="&&Array.isArray(i)&&i.length===3){let[D,A,d]=i,R=Array.isArray(d)&&d.length===1&&(!Array.isArray(d[0])||d[0][0]!=="block");if(D==="if"&&R){let E=Array.isArray(d)&&d.length===1?d[0]:d,O=this.emit(n,"value"),U=this.unwrapLogical(this.emit(A,"value")),$=this.emit(E,"value");return`if (${U}) ${O} = ${$}`}}let c;if(n instanceof String&&m1(n,"bang")!==void 0)c=j(n);else if(typeof n==="string"&&this.reactiveVars?.has(n))c=`${n}.value`;else c=this.emit(n,"value");let h=this._componentName,o=this._componentTypeParams,_=this._schemaName;if(this.is(i,"component")&&(typeof n==="string"||n instanceof String))this._componentName=j(n),this._componentTypeParams=n.typeParams||"";if(this.is(i,"schema")&&(typeof n==="string"||n instanceof String))this._schemaName=j(n);let m=this.emit(i,"value");if(this._componentName=h,this._componentTypeParams=o,this._schemaName=_,!(this.is(i,"object")||this.is(i,".{}")||this.is(i,"?.{}")))m=this.unwrap(m);let w=t==="value",b=t==="statement"&&this.is(n,"object");if(w||b)return`(${c} ${a} ${m})`;return`${c} ${a} ${m}`}emitPropertyAccess(e,u,t,l){let[n,i]=u;if(this._atParamMap&&n==="this"){let s=this._atParamMap.get(j(i));if(s)return s}let a=this.emit(n,"value"),f=A1.NUMBER_LITERAL_RE.test(a)||a.startsWith("await ")||(this.is(n,"object")||this.is(n,"yield"))?`(${a})`:a;if(m1(i,"bang")===!0)return`await ${f}.${j(i)}()`;if(m1(i,"optional"))return`(${f}.${j(i)} != null)`;return`${f}.${j(i)}`}emitOptionalProperty(e,u){let[t,l]=u;return`${this.emit(t,"value")}?.${l}`}emitPick(e,u,t,l){let[n,...i]=u,a=this.emit(n,"value"),r=this._isSimplePickSource(n),f=r?a:"_",s=i.map(([c,h,o])=>{let _=`${f}.${j(c)}`;if(o!==null&&o!==void 0)_=`(${_} ?? ${this.emit(o,"value")})`;return`${j(h)}: ${_}`}).join(", ");if(r)return`({${s}})`;return`((_) => ({${s}}))(${a})`}emitOptPick(e,u,t,l){let[n,...i]=u,a=this.emit(n,"value"),r=this._isSimplePickSource(n),f=r?a:"_",s=i.map(([c,h,o])=>{let _=`${f}.${j(c)}`;if(o!==null&&o!==void 0)_=`(${_} ?? ${this.emit(o,"value")})`;return`${j(h)}: ${_}`}).join(", ");if(r)return`(${a} == null ? undefined : {${s}})`;return`((_) => _ == null ? undefined : ({${s}}))(${a})`}_isSimplePickSource(e){if(typeof e!=="string")return!1;return e==="this"||e==="@"||/^[A-Za-z_$][\w$]*$/.test(e)}emitRegexIndex(e,u){let[t,l,n]=u;this.helpers.add("toMatchable"),this.programVars.add("_");let i=this.emit(t,"value"),a=this.emit(l,"value"),r=n!==null?this.emit(n,"value"):"0",f=a.includes("/m")?", true":"";return`(_ = toMatchable(${i}${f}).match(${a})) && _[${r}]`}emitIndexAccess(e,u){let[t,l]=u;if(this.is(l,"..")||this.is(l,"...")){let n=l[0]==="..",i=this.emit(t,"value"),[a,r]=l.slice(1),f=(o)=>{if(o===null)return null;let _=j(o)??o;if(typeof _==="number")return _;if(typeof _==="string"&&/^\d+$/.test(_))return+_;if(Array.isArray(o)&&o[0]==="-"&&o.length===2){let m=j(o[1])??o[1];if(typeof m==="number")return-m;if(typeof m==="string"&&/^\d+$/.test(m))return-m}return null},s=(o,_,m)=>{let y=f(m);if(y!==null&&y!==-1)return`${i}.slice(${o}, ${y+1})`;return`${i}.slice(${o}, +${_} + 1 || 9e9)`};if(a===null&&r===null)return`${i}.slice()`;if(a===null){if(n&&this.is(r,"-",1)&&(j(r[1])??r[1])==1)return`${i}.slice(0)`;let o=this.emit(r,"value");return n?s("0",o,r):`${i}.slice(0, ${o})`}if(r===null)return`${i}.slice(${this.emit(a,"value")})`;let c=this.emit(a,"value");if(n&&this.is(r,"-",1)&&(j(r[1])??r[1])==1)return`${i}.slice(${c})`;let h=this.emit(r,"value");return n?s(c,h,r):`${i}.slice(${c}, ${h})`}if(this.is(l,"-",1)){let n=j(l[1])??l[1];if(typeof n==="number"||typeof n==="string"&&/^\d+$/.test(n))return`${this.emit(t,"value")}.at(-${n})`}return`${this.emit(t,"value")}[${this.unwrap(this.emit(l,"value"))}]`}emitOptIndex(e,u){let[t,l]=u;if(this.is(l,"-",1)){let n=j(l[1])??l[1];if(typeof n==="number"||typeof n==="string"&&/^\d+$/.test(n))return`${this.emit(t,"value")}?.at(-${n})`}return`${this.emit(t,"value")}?.[${this.emit(l,"value")}]`}emitOptCall(e,u){let[t,...l]=u;return`${this.emit(t,"value")}?.(${l.map((n)=>this.emit(n,"value")).join(", ")})`}emitDef(e,u,t,l){let[n,i,a]=u,r=m1(n,"bang")===!0,f=j(n),s=this.emitParamList(i),c=this.emitFunctionBody(a,i,r),h=this.containsAwait(a),o=this.containsYield(a);return`${h?"async ":""}function${o?"*":""} ${f}(${s}) ${c}`}emitThinArrow(e,u,t,l){let[n,i]=u;if((!n||Array.isArray(n)&&n.length===0)&&this.containsIt(i))n=["it"];let a=l.isVoid||!1,r=this.emitParamList(n),f=this.emitFunctionBody(i,n,a),s=this.containsAwait(i),c=this.containsYield(i),h=`${s?"async ":""}function${c?"*":""}(${r}) ${f}`;return t==="value"?`(${h})`:h}emitFatArrow(e,u,t,l){let[n,i]=u;if((!n||Array.isArray(n)&&n.length===0)&&this.containsIt(i))n=["it"];let a=l.isVoid||!1,r=this.emitParamList(n),s=n.length===1&&typeof n[0]==="string"&&!r.includes("=")&&!r.includes("...")&&!r.includes("[")&&!r.includes("{")?r:`(${r})`,h=this.containsAwait(i)?"async ":"";if(!a){if(this.is(i,"block")&&i.length===2){let _=i[1],m=Array.isArray(_)?_[0]:null;if(m!=="return"&&!d6.has(m)){let y=this.emit(_,"value");if(y[0]==="{")y=`(${y})`;return`${h}${s} => ${y}`}}if(!Array.isArray(i)||i[0]!=="block"){let _=this.emit(i,"value");if(_[0]==="{")_=`(${_})`;return`${h}${s} => ${_}`}}let o=this.emitFunctionBody(i,n,a);return`${h}${s} => ${o}`}emitReturn(e,u,t,l){if(u.length===0)return"return";let[n]=u;if(this.sideEffectOnly&&!(this.is(n,"->")||this.is(n,"=>")))this.error("Cannot return a value from a void function (declared with !)",l);if(this.is(n,"if")){let[,i,a,...r]=n;if(r.length===0){let f=Array.isArray(a)&&a.length===1?a[0]:a;return`if (${this.emit(i,"value")}) return ${this.emit(f,"value")}`}}if(this.is(n,"new")&&Array.isArray(n[1])&&n[1][0]==="if"){let[,i,a]=n[1],r=Array.isArray(a)&&a.length===1?a[0]:a;return`if (${this.emit(i,"value")}) return ${this.emit(["new",r],"value")}`}return`return ${this.emit(n,"value")}`}emitState(e,u){let[t,l]=u;this.usesReactivity=!0;let n=j(t)??t;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(n),`const ${n} = __state(${this.emit(l,"value")})`}emitComputed(e,u){let[t,l]=u;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let n=j(t)??t;if(this.reactiveVars.add(n),this.is(l,"block")&&l.length>2)return`const ${n} = __computed(() => ${this.emitFunctionBody(l)})`;return`const ${n} = __computed(() => ${this.emit(l,"value")})`}emitReadonly(e,u){let[t,l]=u;return`const ${j(t)??t} = ${this.emit(l,"value")}`}emitGate(e,u,t,l){this.error("'<~' (render-ready gate) is only valid at the top of a component body",l)}emitEffect(e,u){let[t,l]=u;this.usesReactivity=!0;let n;if(this.is(l,"block"))n=this.emitFunctionBody(l);else if(this.is(l,"->")||this.is(l,"=>")){let a=this.emit(l,"value");if(t)return`const ${j(t)??this.emit(t,"value")} = __effect(${a})`;return`__effect(${a})`}else n=`{ ${this.emit(l,"value")}; }`;let i=`__effect(() => ${n})`;if(t)return`const ${j(t)??this.emit(t,"value")} = ${i}`;return i}emitBreak(){return"break"}emitContinue(){return"continue"}emitExistential(e,u){return`(${this.emit(u[0],"value")} != null)`}emitPresence(e,u){return`(${this.emit(u[0],"value")} ? true : undefined)`}emitTernary(e,u,t){let[l,n,i]=u;if((n?.[0]?.valueOf?.()??n?.[0])==="="&&Array.isArray(n)&&!n.parenthesized){let r=this.emit(n[1],"value"),f=this.emit(n[2],"value"),s=this.emit(i,"value");return`${r} = (${this.unwrap(this.emit(l,"value"))} ? ${f} : ${s})`}return`(${this.unwrap(this.emit(l,"value"))} ? ${this.emit(n,"value")} : ${this.emit(i,"value")})`}emitLoop(e,u,t){if(t==="value")return this.emitLoopAsValue("while (true)",u[0]);return`while (true) ${this.emitLoopBody(u[0])}`}emitLoopN(e,u,t){let[l,n]=u,a=`for (let it = 0; it < ${this.emit(l,"value")}; it++)`;if(t==="value")return this.emitLoopAsValue(a,n);return`${a} ${this.emitLoopBody(n)}`}emitLoopAsValue(e,u,t){let l=this.containsAwait(u)||t!=null&&this.containsAwait(t),n=this.asyncIIFEOpen(l)+`
|
|
2406
|
+
`;if(this.indentLevel++,n+=this.indent()+`const result = [];
|
|
2407
|
+
`,n+=this.indent()+e+` {
|
|
2408
|
+
`,this.indentLevel++,t!=null)n+=this.indent()+`if (!(${this.unwrap(this.emit(t,"value"))})) continue;
|
|
2409
|
+
`;let i;if(!Array.isArray(u))i=[u];else if(u[0]==="block")i=u.slice(1);else if(Array.isArray(u[0]))i=u;else i=[u];let a=["for-in","for-of","for-as","while","loop"],r=(f)=>{if(typeof f==="string"&&(f==="break"||f==="continue"))return!0;if(!Array.isArray(f))return!1;if(["break","continue","return","throw"].includes(f[0]))return!0;if(f[0]==="if")return f.slice(1).some(r);return f.some(r)};for(let f=0;f<i.length;f++){let s=i[f];if(f!==i.length-1||r(s)||Array.isArray(s)&&a.includes(s[0]))n+=this.indent()+this.addSemicolon(s,this.emit(s,"statement"))+`
|
|
2410
|
+
`;else n+=this.indent()+`result.push(${this.emit(s,"value")});
|
|
2411
|
+
`}return this.indentLevel--,n+=this.indent()+`}
|
|
2412
|
+
`,n+=this.indent()+`return result;
|
|
2413
|
+
`,this.indentLevel--,n+=this.indent()+"})()",n}emitAwait(e,u){return`await ${this.emit(u[0],"value")}`}emitYield(e,u){return u.length===0?"yield":`yield ${this.emit(u[0],"value")}`}emitYieldFrom(e,u){return`yield* ${this.emit(u[0],"value")}`}emitIf(e,u,t,l){let[n,i,...a]=u;return t==="value"?this.emitIfAsExpression(n,i,a):this.emitIfAsStatement(n,i,a)}emitForIn(e,u,t,l){let[n,i,a,r,f]=u;if(t==="value"&&this.comprehensionDepth===0){let w=["for-in",n,i,a];return this.emit(["comprehension",f,[w],r?[r]:[]],t)}let s=Array.isArray(n)?n:[n],c=s.length===0,[h,o]=c?["_i",null]:s,_=this.is(h,"array")||this.is(h,"object")?this.emitDestructuringPattern(h):h;if(a&&a!==null){let w=this.emit(i,"value"),b=o||"_i",D=this.emit(a,"value"),A=this.is(a,"-",1),d=A&&(a[1]==="1"||a[1]===1||j(a[1])==="1"),R=!A&&(a==="1"||a===1||j(a)==="1"),E;if(d)E=`for (let ${b} = ${w}.length - 1; ${b} >= 0; ${b}--) `;else if(R)E=`for (let ${b} = 0; ${b} < ${w}.length; ${b}++) `;else if(A)E=`for (let ${b} = ${w}.length - 1; ${b} >= 0; ${b} += ${D}) `;else E=`for (let ${b} = 0; ${b} < ${w}.length; ${b} += ${D}) `;if(this.is(f,"block")){let O=f.slice(1);this.indentLevel++;let U=[];if(!c)U.push(`let ${_} = ${w}[${b}];`);if(r)U.push(`if (${this.emit(r,"value")}) {`),this.indentLevel++,U.push(...this.formatStatements(O)),this.indentLevel--,U.push(this.indent()+"}");else U.push(...O.map(($)=>this.addSemicolon($,this.emit($,"statement"))));return this.indentLevel--,E+`{
|
|
2414
|
+
${U.map(($)=>this.indent()+$).join(`
|
|
1539
2415
|
`)}
|
|
1540
|
-
${this.indent()}}`}if(
|
|
1541
|
-
`,this.indentLevel++,
|
|
1542
|
-
`,
|
|
1543
|
-
`,this.indentLevel++,
|
|
2416
|
+
${this.indent()}}`}if(c)return r?E+`{ if (${this.emit(r,"value")}) ${this.emit(f,"statement")}; }`:E+`{ ${this.emit(f,"statement")}; }`;return r?E+`{ let ${_} = ${w}[${b}]; if (${this.emit(r,"value")}) ${this.emit(f,"statement")}; }`:E+`{ let ${_} = ${w}[${b}]; ${this.emit(f,"statement")}; }`}if(o){let w=this.emit(i,"value"),b=`for (let ${o} = 0; ${o} < ${w}.length; ${o}++) `;if(this.is(f,"block")){if(b+=`{
|
|
2417
|
+
`,this.indentLevel++,b+=this.indent()+`let ${_} = ${w}[${o}];
|
|
2418
|
+
`,r)b+=this.indent()+`if (${this.unwrap(this.emit(r,"value"))}) {
|
|
2419
|
+
`,this.indentLevel++,b+=this.formatStatements(f.slice(1)).join(`
|
|
1544
2420
|
`)+`
|
|
1545
|
-
`,this.indentLevel--,
|
|
1546
|
-
`;else
|
|
2421
|
+
`,this.indentLevel--,b+=this.indent()+`}
|
|
2422
|
+
`;else b+=this.formatStatements(f.slice(1)).join(`
|
|
1547
2423
|
`)+`
|
|
1548
|
-
`;this.indentLevel--,
|
|
1549
|
-
${
|
|
2424
|
+
`;this.indentLevel--,b+=this.indent()+"}"}else b+=r?`{ let ${_} = ${w}[${o}]; if (${this.unwrap(this.emit(r,"value"))}) ${this.emit(f,"statement")}; }`:`{ let ${_} = ${w}[${o}]; ${this.emit(f,"statement")}; }`;return b}let m=Array.isArray(i)&&i[0];if(m instanceof String)m=j(m);if(m===".."||m==="..."){let w=m==="...",[b,D]=i.slice(1),A=(d)=>typeof d==="number"||typeof d==="string"&&!d.includes("(")||d instanceof String&&!j(d).includes("(")||this.is(d,".");if(A(b)&&A(D)){let d=this.emit(b,"value"),R=this.emit(D,"value"),E=w?"<":"<=",O=a?`${_} += ${this.emit(a,"value")}`:`${_}++`,U=`for (let ${_} = ${d}; ${_} ${E} ${R}; ${O}) `;return U+=r?this.emitLoopBodyWithGuard(f,r):this.emitLoopBody(f),U}}let y=`for (let ${_} of ${this.emit(i,"value")}) `;return y+=r?this.emitLoopBodyWithGuard(f,r):this.emitLoopBody(f),y}emitForOf(e,u,t,l){let[n,i,a,r,f]=u;if(t==="value"&&this.comprehensionDepth===0){let _=["for-of",n,i,a];return this.emit(["comprehension",f,[_],r?[r]:[]],t)}let[s,c]=Array.isArray(n)?n:[n],h=this.emit(i,"value"),o=`for (let ${s} in ${h}) `;if(a&&!c&&!r){if(this.is(f,"block")){this.indentLevel++;let _=[`if (!Object.hasOwn(${h}, ${s})) continue;`,...f.slice(1).map((m)=>this.addSemicolon(m,this.emit(m,"statement")))];return this.indentLevel--,o+`{
|
|
2425
|
+
${_.map((m)=>this.indent()+m).join(`
|
|
1550
2426
|
`)}
|
|
1551
|
-
${this.indent()}}`}return
|
|
1552
|
-
${
|
|
2427
|
+
${this.indent()}}`}return o+`{ if (!Object.hasOwn(${h}, ${s})) continue; ${this.emit(f,"statement")}; }`}if(c){if(this.is(f,"block")){let m=f.slice(1);this.indentLevel++;let y=[];if(a)y.push(`if (!Object.hasOwn(${h}, ${s})) continue;`);if(y.push(`let ${c} = ${h}[${s}];`),r)y.push(`if (${this.emit(r,"value")}) {`),this.indentLevel++,y.push(...m.map((w)=>this.addSemicolon(w,this.emit(w,"statement")))),this.indentLevel--,y.push(this.indent()+"}");else y.push(...m.map((w)=>this.addSemicolon(w,this.emit(w,"statement"))));return this.indentLevel--,o+`{
|
|
2428
|
+
${y.map((w)=>this.indent()+w).join(`
|
|
1553
2429
|
`)}
|
|
1554
|
-
${this.indent()}}`}let
|
|
1555
|
-
${
|
|
2430
|
+
${this.indent()}}`}let _="";if(a)_+=`if (!Object.hasOwn(${h}, ${s})) continue; `;if(_+=`let ${c} = ${h}[${s}]; `,r)_+=`if (${this.emit(r,"value")}) `;return _+=`${this.emit(f,"statement")};`,o+`{ ${_} }`}return o+=r?this.emitLoopBodyWithGuard(f,r):this.emitLoopBody(f),o}emitForAs(e,u,t,l){let n=Array.isArray(u[0])?u[0]:[u[0]],[i]=n,a=u[1],r=u[2],f=u[3],s=u[4],c=!1,h=[];if(this.is(i,"array")){let w=i.slice(1),b=w.findIndex((D)=>this.is(D,"...")||D==="...");if(b!==-1&&b<w.length-1){c=!0;let D=w.slice(b+1),A=D.length,d=w.slice(0,b),R=w[b],E=this.is(R,"...")?R[1]:"_rest",O=d.map((S)=>S===","?"":typeof S==="string"?S:this.emit(S,"value")).join(", "),U=O?`${O}, ...${E}`:`...${E}`,$=D.map((S)=>S===","?"":typeof S==="string"?S:this.emit(S,"value")).join(", ");h.push(`[${U}] = _item`),h.push(`[${$}] = ${E}.splice(-${A})`),this.helpers.add("slice"),w.forEach((S)=>{if(S===","||S==="...")return;if(typeof S==="string")this.programVars.add(S);else if(this.is(S,"...")&&typeof S[1]==="string")this.programVars.add(S[1])})}}let o=this.emit(a,"value"),_=r?"await ":"",m;if(c)m="_item";else if(this.is(i,"array")||this.is(i,"object"))m=this.emitDestructuringPattern(i);else m=i;let y=`for ${_}(let ${m} of ${o}) `;if(c&&h.length>0){let w=this.unwrapBlock(s),b=this.withIndent(()=>[...h.map((D)=>this.indent()+D+";"),...this.formatStatements(w)]);y+=`{
|
|
2431
|
+
${b.join(`
|
|
1556
2432
|
`)}
|
|
1557
|
-
${this.indent()}}`}else
|
|
1558
|
-
`)))[
|
|
1559
|
-
`)))[
|
|
1560
|
-
${
|
|
1561
|
-
`)}}`}emitMap(
|
|
1562
|
-
${this.withIndent(()=>this.formatStatements(
|
|
2433
|
+
${this.indent()}}`}else y+=f?this.emitLoopBodyWithGuard(s,f):this.emitLoopBody(s);return y}emitWhile(e,u,t){let l=u[0],n=u.length===3?u[1]:null,i=u[u.length-1],a=`while (${this.unwrap(this.emit(l,"value"))})`;if(t==="value")return this.emitLoopAsValue(a,i,n);return a+" "+(n?this.emitLoopBodyWithGuard(i,n):this.emitLoopBody(i))}emitRange(e,u){if(e==="..."){if(u.length===1)return`...${this.emit(u[0],"value")}`;let[a,r]=u,f=this.emit(a,"value"),s=this.emit(r,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${f}, ${s})`}let[t,l]=u,n=this.emit(t,"value"),i=this.emit(l,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${n}, ${i})`}emitNot(e,u){let[t]=u;if(typeof t==="string"||t instanceof String)return`!${this.emit(t,"value")}`;if(Array.isArray(t)){if([".","?.","[]","optindex","optcall"].includes(t[0]))return`!${this.emit(t,"value")}`}let l=this.emit(t,"value");return l.startsWith("(")?`!${l}`:`(!${l})`}emitBitwiseNot(e,u){return`(~${this.emit(u[0],"value")})`}emitIncDec(e,u){let[t,l]=u,n=this.emit(t,"value");return l?`(${n}${e})`:`(${e}${n})`}emitTypeof(e,u){return`typeof ${this.emit(u[0],"value")}`}emitDelete(e,u){return`(delete ${this.emit(u[0],"value")})`}emitInstanceof(e,u,t,l){let[n,i]=u,a=m1(l[0],"invert"),r=`(${this.emit(n,"value")} instanceof ${this.emit(i,"value")})`;return a?`(!${r})`:r}emitIn(e,u,t,l){let[n,i]=u,a=this.emit(n,"value"),r=m1(l[0],"invert");if(this.is(i,"object")){let c=`(${a} in ${this.emit(i,"value")})`;return r?`(!${c})`:c}let f=this.emit(i,"value"),s=`(Array.isArray(${f}) || typeof ${f} === 'string' ? ${f}.includes(${a}) : (${a} in ${f}))`;return r?`(!${s})`:s}emitOf(e,u,t,l){let[n,i]=u,a=this.emit(n,"value"),r=this.emit(i,"value"),f=m1(l[0],"invert"),s=`(${a} in ${r})`;return f?`(!${s})`:s}emitRegexMatch(e,u){let[t,l]=u;this.helpers.add("toMatchable"),this.programVars.add("_");let n=this.emit(l,"value"),i=n.includes("/m")?", true":"";return`(_ = toMatchable(${this.emit(t,"value")}${i}).match(${n}))`}emitNew(e,u){let[t]=u;if(this.is(t,".")||this.is(t,"?.")){let[l,n,i]=t;if(Array.isArray(n)&&!n[0].startsWith)return`(${this.emit(["new",n],"value")}).${i}`;return`new ${this.emit(n,"value")}.${i}`}if(Array.isArray(t)){let[l,...n]=t;return`new ${this.emit(l,"value")}(${n.map((i)=>this.unwrap(this.emit(i,"value"))).join(", ")})`}return`new ${this.emit(t,"value")}()`}emitLogicalAnd(e,u,t,l){let n=this.flattenBinaryChain(l).slice(1);if(n.length===0)return"true";if(n.length===1)return this.emit(n[0],"value");return`(${n.map((i)=>this.emit(i,"value")).join(" && ")})`}emitLogicalOr(e,u,t,l){let n=this.flattenBinaryChain(l).slice(1);if(n.length===0)return"true";if(n.length===1)return this.emit(n[0],"value");return`(${n.map((i)=>this.emit(i,"value")).join(" || ")})`}emitSymbol(e,u,t,l){if(l&&l.loc&&typeof u[0]==="string")l._anchors=(l._anchors||[]).concat([{name:"Symbol",origLine:l.loc.r,origCol:l.loc.c+1}]);return`Symbol.for(${JSON.stringify(u[0])})`}emitArray(e,u){let t=u.length>0&&u[u.length-1]===",",l=u.map((n)=>{if(n===",")return"";if(n==="...")return"";if(this.is(n,"..."))return`...${this.emit(n[1],"value")}`;return this.emit(n,"value")}).join(", ");return t?`[${l},]`:`[${l}]`}emitObject(e,u,t){if(u.length===1&&Array.isArray(u[0])&&Array.isArray(u[0][2])&&u[0][2][0]==="comprehension"){let[,o,_]=u[0],[,m,y,w]=_;return this.emit(["object-comprehension",o,m,y,w],t)}let l=(o,_,m=0,y=1/0)=>{let w=this.options&&this.options.source;if(!w||typeof _!=="string"||!/^[A-Za-z_$][\w$]*$/.test(_))return-1;let D=(this._sourceLinesCache||(this._sourceLinesCache=w.split(`
|
|
2434
|
+
`)))[o];if(!D)return-1;let A=new RegExp("\\b"+_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b","g");A.lastIndex=Math.max(0,m);let d;while((d=A.exec(D))!==null){if(d.index>=y)return-1;return d.index}return-1},n=(o,_,m=0,y=1/0)=>{let w=this.options&&this.options.source;if(!w||typeof _!=="string"||!/^[A-Za-z_$][\w$]*$/.test(_))return-1;let D=(this._sourceLinesCache||(this._sourceLinesCache=w.split(`
|
|
2435
|
+
`)))[o];if(!D)return-1;let A=new RegExp("\\b"+_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b","g");A.lastIndex=Math.max(0,m);let d,R=-1;while((d=A.exec(D))!==null){if(d.index>=y)break;R=d.index}return R},i=!1,a=Array(u.length).fill(!1),r=u.map((o,_)=>{if(this.is(o,"..."))return`...${this.emit(o[1],"value")}`;let[m,y,w]=o,b,D=!1;if(this.is(y,"dynamicKey"))b=`[${this.emit(y[1],"value")}]`;else if(this.is(y,"str"))b=`[${this.emit(y,"value")}]`;else this.suppressReactiveUnwrap=!0,b=this.emit(y,"value"),this.suppressReactiveUnwrap=!1,D=!Array.isArray(y)&&typeof b==="string"&&/^[A-Za-z_$][\w$]*$/.test(b);if(m===":"&&D&&this.is(w,"->")){let[,d,R]=w;if((!d||Array.isArray(d)&&d.length===0)&&this.containsIt(R))d=["it"];let E=w.isVoid||!1,O=this.emitParamList(d),U=this.emitFunctionBody(R,d,E),$=this.containsAwait(R),S=this.containsYield(R),g=$?"async ":"",q=S?"*":"";if(w&&w.loc&&Array.isArray(d)&&d.length){let H=w.loc.r,B=w.loc.c,L=[],W=B;for(let e1 of d){if(typeof e1!=="string")continue;let N=l(H,e1,W);if(N>=0)L.push({name:e1,origLine:H,origCol:N}),W=N+e1.length}if(L.length)w._anchors=(w._anchors||[]).concat(L)}return i=!0,a[_]=!0,`${g}${q}${b}(${O}) ${U}`}let A=this.emit(w,"value");if(m===":"&&D&&Array.isArray(o)&&o.loc&&typeof y==="string"){let d=l(o.loc.r,y,0,o.loc.c+y.length+1);if(d>=0)o._anchors=(o._anchors||[]).concat([{name:y,origLine:o.loc.r,origCol:d}])}if(m==="=")return`${b} = ${A}`;if(m===":")return`${b}: ${A}`;if(b===A&&!Array.isArray(y)){if(Array.isArray(o)&&o.loc&&typeof y==="string"){let d=n(o.loc.r,y,0,o.loc.c+1);if(d>=0)o._anchors=(o._anchors||[]).concat([{name:y,origLine:o.loc.r,origCol:d}])}return b}return`${b}: ${A}`});if(!i)return`{${r.join(", ")}}`;let f=[],s=[];for(let o=0;o<r.length;o++)if(a[o]||o>0&&a[o-1]){if(s.length&&f.length===0)f.push(s.join(", ")),s=[];f.push(r[o])}else if(f.length===0)s.push(r[o]);else f.push(r[o]);if(s.length&&f.length===0)f.push(s.join(", "));let c=f[0],h=f.slice(1);return h.length===0?`{${c}}`:`{${c},
|
|
2436
|
+
${h.join(`,
|
|
2437
|
+
`)}}`}emitMap(e,u,t){if(u.length===0)return"new Map()";return`new Map([${u.map((n)=>{if(this.is(n,"..."))return`...${this.emit(n[1],"value")}`;let[,i,a]=n,r;if(Array.isArray(i))r=this.emit(i,"value");else{let s=j(i)??i;r=!s.startsWith('"')&&!s.startsWith("'")&&!s.startsWith("/")&&!A1.NUMBER_START_RE.test(s)&&!b6.has(s)?`"${s}"`:this.emit(i,"value")}let f=this.emit(a,"value");return`[${r}, ${f}]`}).join(", ")}])`}emitBlock(e,u,t){if(t==="statement")return`{
|
|
2438
|
+
${this.withIndent(()=>this.formatStatements(u)).join(`
|
|
1563
2439
|
`)}
|
|
1564
|
-
${this.indent()}}`;if(
|
|
1565
|
-
${this.withIndent(()=>
|
|
2440
|
+
${this.indent()}}`;if(u.length===0)return"undefined";if(u.length===1)return this.emit(u[0],t);let l=u[u.length-1];if(Array.isArray(l)&&["break","continue","return","throw"].includes(l[0])){let i=u.map((a)=>this.addSemicolon(a,this.emit(a,"statement")));return`{
|
|
2441
|
+
${this.withIndent(()=>i.map((a)=>this.indent()+a).join(`
|
|
1566
2442
|
`))}
|
|
1567
|
-
${this.indent()}}`}return`(${
|
|
1568
|
-
${this.indent()} ${
|
|
1569
|
-
${this.indent()}}`}}let
|
|
1570
|
-
`;this.indentLevel++;for(let
|
|
1571
|
-
`}this.indentLevel++,
|
|
1572
|
-
`,this.indentLevel++,
|
|
1573
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
1574
|
-
`;for(let
|
|
1575
|
-
`,this.indentLevel++,
|
|
1576
|
-
`}else if(
|
|
1577
|
-
`,this.indentLevel++,
|
|
1578
|
-
`;if(
|
|
1579
|
-
`}else if(
|
|
1580
|
-
`,this.indentLevel++}}for(let
|
|
1581
|
-
`,this.indentLevel++;let
|
|
1582
|
-
`;else if(Array.isArray(
|
|
1583
|
-
`;else
|
|
1584
|
-
`}else if(
|
|
1585
|
-
`;else if(Array.isArray(
|
|
1586
|
-
`;else
|
|
1587
|
-
`;for(let
|
|
1588
|
-
`;for(let
|
|
1589
|
-
`;return
|
|
1590
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
1591
|
-
`;this.indentLevel++,
|
|
1592
|
-
`;for(let
|
|
1593
|
-
`,this.indentLevel
|
|
1594
|
-
`;if(
|
|
1595
|
-
`}}for(let
|
|
1596
|
-
`,this.indentLevel++;
|
|
1597
|
-
`;for(let
|
|
1598
|
-
`;for(let
|
|
1599
|
-
`;return
|
|
1600
|
-
`,this.indentLevel--,
|
|
1601
|
-
`,
|
|
1602
|
-
`;else
|
|
1603
|
-
`}else
|
|
1604
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
1605
|
-
`;else
|
|
1606
|
-
`;this.indentLevel--}}}return
|
|
1607
|
-
`}else if(
|
|
1608
|
-
`;else
|
|
1609
|
-
`}return
|
|
1610
|
-
|
|
1611
|
-
`;if(
|
|
1612
|
-
`;let
|
|
1613
|
-
|
|
1614
|
-
`;return}
|
|
1615
|
-
`;return}}
|
|
1616
|
-
`;return}if(!(
|
|
1617
|
-
`;return}
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
`;
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
`;
|
|
1624
|
-
`;
|
|
1625
|
-
`;
|
|
1626
|
-
|
|
1627
|
-
|
|
2443
|
+
${this.indent()}}`}return`(${u.map((i)=>this.emit(i,"value")).join(", ")})`}emitTry(e,u,t){let l=t==="value",n="try ",i=u[0];if(n+=l&&this.is(i,"block")?this.emitBlockWithReturns(i):this.emit(i,"statement"),u.length>=2&&Array.isArray(u[1])&&u[1].length===2&&u[1][0]!=="block"){let[a,r]=u[1];if(n+=" catch",a&&(this.is(a,"object")||this.is(a,"array"))){n+=" (error)";let f=`(${this.emit(a,"value")} = error)`;r=this.is(r,"block")?["block",f,...r.slice(1)]:["block",f,r]}else if(a)n+=` (${a})`;n+=" "+(l&&this.is(r,"block")?this.emitBlockWithReturns(r):this.emit(r,"statement"))}else if(u.length===2)n+=" finally "+this.emit(u[1],"statement");if(u.length===3)n+=" finally "+this.emit(u[2],"statement");if(u.length===1)n+=" catch {}";if(l){let a=this.containsAwait(u[0])||u[1]&&this.containsAwait(u[1])||u[2]&&this.containsAwait(u[2]);return this.asyncIIFE(a,n)}return n}emitThrow(e,u,t){let[l]=u;if(Array.isArray(l)){let i=l,a=null;if(l[0]==="new"&&Array.isArray(l[1])&&l[1][0]==="if")a="new",i=l[1];else if(l[0]==="if")i=l;if(i[0]==="if"){let[,r,f]=i,s=Array.isArray(f)&&f.length===1?f[0]:f;l=a==="new"?["new",s]:s;let c=this.emit(r,"value"),h=`throw ${this.emit(l,"value")}`;return`if (${c}) {
|
|
2444
|
+
${this.indent()} ${h};
|
|
2445
|
+
${this.indent()}}`}}let n=`throw ${this.emit(l,"value")}`;return t==="value"?`(() => { ${n}; })()`:n}emitControl(e,u,t){let[l,n,i]=u,a=j(l),r=i[0]==="return",f=this.emit(n,"value"),s=i.length>1?i[1]:null,c=r?s?`return ${this.emit(s,"value")}`:"return":s?`throw ${this.emit(s,"value")}`:"throw new Error()",h=this.wrapForCondition(f);if(t==="value"){if(a==="??")return`(() => { const __v = ${f}; if (__v == null) ${c}; return __v; })()`;if(a==="||")return`(() => { const __v = ${f}; if (!__v) ${c}; return __v; })()`;return`(() => { const __v = ${f}; if (__v) ${c}; return __v; })()`}if(a==="??")return`if (${h} == null) ${c}`;if(a==="||")return`if (!${h}) ${c}`;return`if (${h}) ${c}`}emitSwitch(e,u,t){let[l,n,i]=u;if(l===null)return this.emitSwitchAsIfChain(n,i,t);let a=`switch (${this.emit(l,"value")}) {
|
|
2446
|
+
`;this.indentLevel++;for(let r of n){let[,f,s]=r;for(let c of f){let h=j(c)??c,o;if(Array.isArray(h))o=this.emit(h,"value");else if(typeof h==="string"&&(h.startsWith('"')||h.startsWith("'")))o=`'${h.slice(1,-1)}'`;else o=this.emit(h,"value");a+=this.indent()+`case ${o}:
|
|
2447
|
+
`}this.indentLevel++,a+=this.emitSwitchCaseBody(s,t),this.indentLevel--}if(i)a+=this.indent()+`default:
|
|
2448
|
+
`,this.indentLevel++,a+=this.emitSwitchCaseBody(i,t),this.indentLevel--;if(this.indentLevel--,a+=this.indent()+"}",t==="value"){let r=this.containsAwait(l)||n.some((f)=>this.containsAwait(f[1])||this.containsAwait(f[2]))||i&&this.containsAwait(i);return this.asyncIIFE(r,a)}return a}emitWhen(e,u,t,l){this.error("when clause should be handled by switch",l)}_forInHeader(e,u,t){let l=Array.isArray(e)?e:[e],n=l.length===0,[i,a]=n?["_i",null]:l,r=this.is(i,"array")||this.is(i,"object")?this.emitDestructuringPattern(i):i;if(t&&t!==null){let f=Array.isArray(u)&&u[0];if(f instanceof String)f=j(f);if(f===".."||f==="..."){let D=f==="...",[A,d]=u.slice(1),R=this.emit(A,"value"),E=this.emit(d,"value"),O=this.emit(t,"value");return{header:`for (let ${r} = ${R}; ${r} ${D?"<":"<="} ${E}; ${r} += ${O})`,setup:null}}let c=this.emit(u,"value"),h=a||"_i",o=this.emit(t,"value"),_=this.is(t,"-",1),m=_&&(t[1]==="1"||t[1]===1||j(t[1])==="1"),y=!_&&(t==="1"||t===1||j(t)==="1"),w=m?`${h}--`:y?`${h}++`:`${h} += ${o}`;return{header:_?`for (let ${h} = ${c}.length - 1; ${h} >= 0; ${w})`:`for (let ${h} = 0; ${h} < ${c}.length; ${w})`,setup:n?null:`let ${r} = ${c}[${h}];`}}if(a){let f=this.emit(u,"value");return{header:`for (let ${a} = 0; ${a} < ${f}.length; ${a}++)`,setup:`let ${r} = ${f}[${a}];`}}return{header:`for (let ${r} of ${this.emit(u,"value")})`,setup:null}}_forOfHeader(e,u,t){let l=Array.isArray(e)?e:[e],[n,i]=l,a=this.is(n,"array")||this.is(n,"object")?this.emitDestructuringPattern(n):n,r=this.emit(u,"value");return{header:`for (let ${a} in ${r})`,own:t,vv:i,oc:r,kvp:a}}_forAsHeader(e,u,t){let l=Array.isArray(e)?e:[e],[n]=l,i=this.is(n,"array")||this.is(n,"object")?this.emitDestructuringPattern(n):n;return{header:`for ${t?"await ":""}(let ${i} of ${this.emit(u,"value")})`}}emitComprehension(e,u,t){let[l,n,i]=u;if(t==="statement")return this.emitComprehensionAsLoop(l,n,i);if(this.comprehensionTarget){let c=this.comprehensionTarget;this.comprehensionTarget=null;try{return this.emitComprehensionWithTarget(l,n,i,c)}finally{this.comprehensionTarget=c}}let a=this.containsAwait(l)||n.some((c)=>this.containsAwait(c))||i.some((c)=>this.containsAwait(c)),r=this.asyncIIFEOpen(a)+`
|
|
2449
|
+
`;this.indentLevel++,this.comprehensionDepth++,r+=this.indent()+`const result = [];
|
|
2450
|
+
`;for(let c of n){let[h,o,_,m]=c;if(h==="for-in"){let{header:y,setup:w}=this._forInHeader(o,_,m);if(r+=this.indent()+y+` {
|
|
2451
|
+
`,this.indentLevel++,w)r+=this.indent()+w+`
|
|
2452
|
+
`}else if(h==="for-of"){let{header:y,own:w,vv:b,oc:D,kvp:A}=this._forOfHeader(o,_,m);if(r+=this.indent()+y+` {
|
|
2453
|
+
`,this.indentLevel++,w)r+=this.indent()+`if (!Object.hasOwn(${D}, ${A})) continue;
|
|
2454
|
+
`;if(b)r+=this.indent()+`let ${b} = ${D}[${A}];
|
|
2455
|
+
`}else if(h==="for-as"){let{header:y}=this._forAsHeader(o,_,c[3]);r+=this.indent()+y+` {
|
|
2456
|
+
`,this.indentLevel++}}for(let c of i)r+=this.indent()+`if (${this.emit(c,"value")}) {
|
|
2457
|
+
`,this.indentLevel++;let f=(c)=>{if(typeof c==="string"&&(c==="break"||c==="continue"))return!0;if(!Array.isArray(c))return!1;if(["break","continue","return","throw"].includes(c[0]))return!0;if(c[0]==="if")return c.slice(1).some(f);return c.some(f)},s=["for-in","for-of","for-as","while","loop"];if(this.is(l,"block"))for(let c=0;c<l.length-1;c++){let h=l[c+1];if(c!==l.length-2||f(h))r+=this.indent()+this.emit(h,"statement")+`;
|
|
2458
|
+
`;else if(Array.isArray(h)&&s.includes(h[0]))r+=this.indent()+this.emit(h,"statement")+`;
|
|
2459
|
+
`;else r+=this.indent()+`result.push(${this.emit(h,"value")});
|
|
2460
|
+
`}else if(f(l))r+=this.indent()+this.emit(l,"statement")+`;
|
|
2461
|
+
`;else if(Array.isArray(l)&&s.includes(l[0]))r+=this.indent()+this.emit(l,"statement")+`;
|
|
2462
|
+
`;else r+=this.indent()+`result.push(${this.emit(l,"value")});
|
|
2463
|
+
`;for(let c=0;c<i.length;c++)this.indentLevel--,r+=this.indent()+`}
|
|
2464
|
+
`;for(let c=0;c<n.length;c++)this.indentLevel--,r+=this.indent()+`}
|
|
2465
|
+
`;return r+=this.indent()+`return result;
|
|
2466
|
+
`,this.indentLevel--,this.comprehensionDepth--,r+=this.indent()+"})()",r}emitObjectComprehension(e,u,t){let[l,n,i,a]=u,r=this.containsAwait(l)||this.containsAwait(n)||i.some((s)=>this.containsAwait(s))||a.some((s)=>this.containsAwait(s)),f=this.asyncIIFEOpen(r)+`
|
|
2467
|
+
`;this.indentLevel++,f+=this.indent()+`const result = {};
|
|
2468
|
+
`;for(let s of i){let[c,h,o,_]=s;if(c==="for-of"){let[m,y]=h,w=this.emit(o,"value");if(f+=this.indent()+`for (let ${m} in ${w}) {
|
|
2469
|
+
`,this.indentLevel++,_)f+=this.indent()+`if (!Object.hasOwn(${w}, ${m})) continue;
|
|
2470
|
+
`;if(y)f+=this.indent()+`let ${y} = ${w}[${m}];
|
|
2471
|
+
`}}for(let s of a)f+=this.indent()+`if (${this.emit(s,"value")}) {
|
|
2472
|
+
`,this.indentLevel++;f+=this.indent()+`result[${this.emit(l,"value")}] = ${this.emit(n,"value")};
|
|
2473
|
+
`;for(let s=0;s<a.length;s++)this.indentLevel--,f+=this.indent()+`}
|
|
2474
|
+
`;for(let s=0;s<i.length;s++)this.indentLevel--,f+=this.indent()+`}
|
|
2475
|
+
`;return f+=this.indent()+`return result;
|
|
2476
|
+
`,this.indentLevel--,f+=this.indent()+"})()",f}emitClass(e,u,t){let[l,n,...i]=u,a=l?`class ${l}`:"class";if(n)a+=` extends ${this.emit(n,"value")}`;if(a+=` {
|
|
2477
|
+
`,i.length>0&&Array.isArray(i[0])){let r=i[0];if(r[0]==="block"){let f=r.slice(1);if(f.length>0&&Array.isArray(f[0])&&f[0][0]==="object"){let c=f[0].slice(1);this.indentLevel++,a+=this._emitClassMembers(c,n);for(let h of f.slice(1))if(this.is(h,"class")){let[,o,_,...m]=h;if(this.is(o,".")&&o[1]==="this")a+=this.indent()+`static ${o[2]} = ${this.emit(["class",null,_,...m],"value")};
|
|
2478
|
+
`;else a+=this.indent()+this.emit(h,"statement")+`;
|
|
2479
|
+
`}else a+=this.indent()+this.emit(h,"statement")+`;
|
|
2480
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let c of f)if(this.is(c,"=")&&Array.isArray(c[1])&&c[1][0]==="."&&c[1][1]==="this")a+=this.indent()+`static ${c[1][2]} = ${this.emit(c[2],"value")};
|
|
2481
|
+
`;else a+=this.indent()+this.emit(c,"statement")+`;
|
|
2482
|
+
`;this.indentLevel--}}}return a+=this.indent()+"}",a}_emitClassMembers(e,u){let t="",l=[];for(let[,n,i]of e){let a=this.is(n,".")&&n[1]==="this",r=this.is(n,"computed"),f=this.extractMemberName(n);if(this.is(i,"=>")&&!a&&!r&&f!=="constructor")l.push(f)}for(let[,n,i]of e){let a=this.is(n,".")&&n[1]==="this",r=this.is(n,"computed"),f=this.extractMemberName(n);if(this.is(i,"->")||this.is(i,"=>")){let[,s,c]=i,h=this.containsAwait(c),o=this.containsYield(c),_=s,m=[];if(f==="constructor"){let b=!!u,D=b?new Map:null;_=s.map((A)=>{if(this.is(A,".")&&A[1]==="this"){let d=j(A[2]),R=b?`_${d}`:d;if(m.push(`this.${d} = ${R}`),b)D.set(d,R);return R}if(this.is(A,"default")&&this.is(A[1],".")&&A[1][1]==="this"){let d=j(A[1][2]),R=b?`_${d}`:d;if(m.push(`this.${d} = ${R}`),b)D.set(d,R);return["default",R,A[2]]}return A});for(let A of l)m.unshift(`this.${A} = this.${A}.bind(this)`);if(D?.size>0)this._atParamMap=D}let y=this.emitParamList(_),w=(a?"static ":"")+(h?"async ":"")+(o?"*":"");if(t+=this.indent()+`${w}${f}(${y}) `,!r)this.currentMethodName=f;t+=this.emitMethodBody(c,m,f==="constructor",_),this._atParamMap=null,this.currentMethodName=null,t+=`
|
|
2483
|
+
`}else if(a)t+=this.indent()+`static ${f} = ${this.emit(i,"value")};
|
|
2484
|
+
`;else t+=this.indent()+`${f} = ${this.emit(i,"value")};
|
|
2485
|
+
`}return t}emitSuper(e,u){if(u.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let t=u.map((l)=>this.unwrap(this.emit(l,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${t})`;return`super(${t})`}emitImport(e,u,t,l){if(u.length===1){let r=`import(${this.emit(u[0],"value")})`;if(m1(l[0],"bang")===!0)return`(await ${r})`;return r}if(this.options.skipImports)return"";if(u.length===3){let[r,f,s]=u,c=this.addJsExtensionAndAssertions(s);if(f[0]==="*"&&f.length===2)return`import ${r}, * as ${f[1]} from ${c}`;let h=f.map((o)=>Array.isArray(o)&&o.length===2?`${o[0]} as ${o[1]}`:o).join(", ");return this._attachImportSpecifierAnchors(l,[r,...f.flatMap((o)=>Array.isArray(o)?o:[o])]),`import ${r}, { ${h} } from ${c}`}let[n,i]=u,a=this.addJsExtensionAndAssertions(i);if(typeof n==="string")return`import ${n} from ${a}`;if(Array.isArray(n)){if(n[0]==="*"&&n.length===2)return`import * as ${n[1]} from ${a}`;let r=n.map((f)=>Array.isArray(f)&&f.length===2?`${f[0]} as ${f[1]}`:f).join(", ");return this._attachImportSpecifierAnchors(l,n.flatMap((f)=>Array.isArray(f)?f:[f])),`import { ${r} } from ${a}`}return`import ${this.emit(n,"value")} from ${a}`}_attachImportSpecifierAnchors(e,u){if(!e||!e.loc)return;let t=this.options&&this.options.source;if(!t||!u||!u.length)return;let l=this._sourceLinesCache||(this._sourceLinesCache=t.split(`
|
|
2486
|
+
`)),n=e.loc.r,i=e.loc.c,a=[];for(let r of u){if(typeof r!=="string"||!/^[A-Za-z_$][\w$]*$/.test(r))continue;let f=new RegExp("\\b"+r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b"),s=!1;while(n<l.length){let h=(l[n]||"").replace(/#.*$/,"");f.lastIndex=0;let o=h.slice(i),_=f.exec(o);if(_){let m=i+_.index;a.push({name:r,origLine:n,origCol:m}),i=m+r.length,s=!0;break}n++,i=0}if(!s)break}if(a.length)e._anchors=(e._anchors||[]).concat(a)}applyVoidMarker(e,u,t){let l=this.is(u,"->")||this.is(u,"=>")||this.is(u,"def");if(e instanceof String&&m1(e,"bang")!==void 0&&!l){let n=m1(e,"bang")===!0?"!":"&";this.error(`Cannot use ${n} sigil in variable declaration '${j(e)}'`,t)}if(e instanceof String&&m1(e,"bang")===!0&&l)u.isVoid=!0}emitExport(e,u){let[t]=u;if(this.options.skipExports){if(this.is(t,"=")){let l=this._componentName,n=this._componentTypeParams,i=this._schemaName;if(this.is(t[2],"component"))this._componentName=j(t[1]),this._componentTypeParams=t[1]?.typeParams||"";if(this.is(t[2],"schema"))this._schemaName=j(t[1]);this.applyVoidMarker(t[1],t[2],t);let a=`const ${t[1]} = ${this.emit(t[2],"value")}`;return this._componentName=l,this._componentTypeParams=n,this._schemaName=i,a}if(Array.isArray(t)&&t.every((l)=>typeof l==="string"))return"";return this.emit(t,"statement")}if(this.is(t,"=")){let l=this._componentName,n=this._componentTypeParams,i=this._schemaName;if(this.is(t[2],"component"))this._componentName=j(t[1]),this._componentTypeParams=t[1]?.typeParams||"";if(this.is(t[2],"schema"))this._schemaName=j(t[1]);this.applyVoidMarker(t[1],t[2],t);let a=`export const ${t[1]} = ${this.emit(t[2],"value")}`;return this._componentName=l,this._componentTypeParams=n,this._schemaName=i,a}if(Array.isArray(t)&&t.every((l)=>typeof l==="string"))return`export { ${t.join(", ")} }`;return`export ${this.emit(t,"statement")}`}emitExportDefault(e,u){let[t]=u;if(this.options.skipExports){if(this.is(t,"="))return this.applyVoidMarker(t[1],t[2],t),`const ${t[1]} = ${this.emit(t[2],"value")}`;return this.emit(t,"statement")}if(this.is(t,"="))return this.applyVoidMarker(t[1],t[2],t),`const ${t[1]} = ${this.emit(t[2],"value")};
|
|
2487
|
+
export default ${t[1]}`;return`export default ${this.emit(t,"statement")}`}emitExportAll(e,u){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(u[0])}`}emitExportFrom(e,u){if(this.options.skipExports)return"";let[t,l]=u,n=this.addJsExtensionAndAssertions(l);if(Array.isArray(t))return`export { ${t.map((a)=>Array.isArray(a)&&a.length===2?`${a[0]} as ${a[1]}`:a).join(", ")} } from ${n}`;return`export ${t} from ${n}`}emitDoIIFE(e,u){return`(${this.emit(u[0],"statement")})()`}emitRegex(e,u){return u.length===0?e:this.emit(u[0],"value")}emitTaggedTemplate(e,u){let[t,l]=u,n=this.emit(t,"value"),i=this.emit(l,"value");if(i.startsWith("`"))return`${n}${i}`;if(i.startsWith('"')||i.startsWith("'"))return`${n}\`${i.slice(1,-1)}\``;return`${n}\`${i}\``}emitString(e,u){let t="`";for(let l of u)if(l instanceof String)t+=this.extractStringContent(l);else if(typeof l==="string")if(l.startsWith('"')||l.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",l);t+=l.slice(1,-1)}else t+=l;else if(Array.isArray(l))if(l.length===1&&typeof l[0]==="string"&&!Array.isArray(l[0])){let n=l[0];t+=/^[\d"']/.test(n)?"${"+this.emit(n,"value")+"}":"${"+n+"}"}else{let n=l.length===1&&Array.isArray(l[0])?l[0]:l;t+="${"+this.emit(n,"value")+"}"}return t+"`"}findPostfixConditional(e){if(!Array.isArray(e))return null;let u=e[0];if(u==="if"&&e.length===3)return{type:u,condition:e[1],value:e[2]};if(u==="+"||u==="-"||u==="*"||u==="/")for(let t=1;t<e.length;t++){let l=this.findPostfixConditional(e[t]);if(l)return l.parentOp=u,l.operandIndex=t,l.otherOperands=e.slice(1).filter((n,i)=>i!==t-1),l}return null}rebuildWithoutConditional(e){let u=Array.isArray(e.value)&&e.value.length===1?e.value[0]:e.value;if(e.parentOp)return[e.parentOp,...e.otherOperands,u];return u}_tryPostfixCall(e,u,t){if(t!=="statement"||u.length!==1)return null;let l=this.findPostfixConditional(u[0]);if(!l)return null;let n=this.rebuildWithoutConditional(l),i=this.emit(e,"value"),a=this.emit(l.condition,"value"),r=this.emit(n,"value");return`if (${a}) ${i}(${r})`}_emitArgs(e){return e.map((u)=>this.unwrap(this.emit(u,"value"))).join(", ")}emitDestructuringPattern(e){return this.formatParam(e)}emitParamList(e){let u=e.findIndex((l)=>this.is(l,"expansion"));if(u!==-1){let l=e.slice(0,u),n=e.slice(u+1),i=l.map((a)=>this.formatParam(a)).join(", ");return this.expansionAfterParams=n,i?`${i}, ..._rest`:"..._rest"}let t=e.findIndex((l)=>this.is(l,"rest"));if(t!==-1&&t<e.length-1){let l=e.slice(0,t),n=e[t],i=e.slice(t+1),a=l.map((r)=>this.formatParam(r));return this.restMiddleParam={restName:n[1],afterParams:i,beforeCount:l.length},a.length>0?`${a.join(", ")}, ...${n[1]}`:`...${n[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,e.map((l)=>this.formatParam(l)).join(", ")}formatParam(e){if(typeof e==="string")return e;if(e instanceof String){if(this.options.inlineTypes&&e.type)return`${e.valueOf()}: ${e.type.replace(/::/g,":")}`;return e.valueOf()}if(this.is(e,"rest")){let u=e[1];if(this.options.inlineTypes&&u instanceof String&&u.type)return`...${u.valueOf()}: ${u.type.replace(/::/g,":")}`;return`...${u}`}if(this.is(e,"default"))return`${this.formatParam(e[1])} = ${this.emit(e[2],"value")}`;if(this.is(e,".")&&e[1]==="this")return e[2];if(this.is(e,"array"))return`[${e.slice(1).map((t)=>{if(t===",")return"";if(t==="...")return"";if(this.is(t,"..."))return`...${t[1]}`;if(this.is(t,"=")&&typeof t[1]==="string")return`${t[1]} = ${this.emit(t[2],"value")}`;if(typeof t==="string")return t;return this.formatParam(t)}).join(", ")}]`;if(this.is(e,"object"))return`{${e.slice(1).map((t)=>{if(this.is(t,"..."))return`...${t[1]}`;if(this.is(t,"default"))return`${t[1]} = ${this.emit(t[2],"value")}`;let[l,n,i]=t;if(l==="=")return`${n} = ${this.emit(i,"value")}`;if(n===i)return n;return`${n}: ${this.formatParam(i)}`}).join(", ")}}`;return JSON.stringify(e)}emitBodyWithReturns(e,u=[],t={}){let{sideEffectOnly:l=!1,autoAssignments:n=[],isConstructor:i=!1,hasExpansionParams:a=!1}=t,r=this.sideEffectOnly;this.sideEffectOnly=l;let f=new Set,s=(y)=>{if(typeof y==="string"||y instanceof String)f.add(j(y));else if(Array.isArray(y)){if(y[0]==="rest"||y[0]==="..."){if(typeof y[1]==="string"||y[1]instanceof String)f.add(j(y[1]))}else if(y[0]==="default"){if(typeof y[1]==="string"||y[1]instanceof String)f.add(j(y[1]))}else if(y[0]==="array"||y[0]==="object")this.collectVarsFromArray(y,f)}};if(Array.isArray(u))u.forEach(s);let c=this.collectFunctionVariables(e),h=new Set([...c].filter((y)=>!this.programVars.has(y)&&!this.reactiveVars?.has(y)&&!f.has(y)&&!this.scopeStack.some((w)=>w.has(y)))),o=["return","throw","break","continue"],_=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...h,...f])),this.is(e,"block")){let y=this.unwrapBlock(e);if(a&&this.expansionAfterParams?.length>0)y=[...this.expansionAfterParams.map((d,R)=>{return`const ${typeof d==="string"?d:JSON.stringify(d)} = _rest[_rest.length - ${this.expansionAfterParams.length-R}]`}),...y],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:A,afterParams:d}=this.restMiddleParam,R=d.length,E=[];if(d.forEach((O,U)=>{let $=typeof O==="string"?O:this.is(O,"default")?O[1]:JSON.stringify(O);E.push(`const ${$} = ${A}[${A}.length - ${R-U}]`)}),R>0)E.push(`${A} = ${A}.slice(0, -${R})`);y=[...E,...y],this.restMiddleParam=null}this.indentLevel++;let w=`{
|
|
2488
|
+
`;if(h.size>0){let A=this.options.inlineTypes?this.collectTypedLocals(e):null,d=Array.from(h).sort().map((R)=>{let E=A?.get(R);return E?`${R}: ${E}`:R});w+=this.indent()+`let ${d.join(", ")};
|
|
2489
|
+
`}let b=n.length>0&&y.length>0&&Array.isArray(y[0])&&y[0][0]==="super",D=(A)=>{A.forEach((d,R)=>{let E=R===A.length-1,O=Array.isArray(d)?d[0]:null;if(!E&&O==="comprehension"){let[,g,q,H]=d;w+=this.indent()+this.emitComprehensionAsLoop(g,q,H)+`
|
|
2490
|
+
`;return}if(!i&&!l&&E&&O==="if"){let[g,q,...H]=d.slice(1),B=(W)=>this.is(W,"block")&&W.length>2;if(this.hasStatementInBranch(q)||H.some((W)=>this.hasStatementInBranch(W))||B(q)||H.some(B)){w+=this.emitIfElseWithEarlyReturns(d)+`
|
|
2491
|
+
`;return}}if(!i&&!l&&E&&O==="="){let[g,q]=d.slice(1);if(typeof g==="string"&&Array.isArray(q)){let H=q[0];if(H==="comprehension"||H==="for-in"){this.comprehensionTarget=g,w+=this.emit(q,"value"),this.comprehensionTarget=null,w+=this.indent()+`return ${g};
|
|
2492
|
+
`;return}}}if(!i&&!l&&E&&_.includes(O)){if(this.containsYield(d)){w+=this.indent()+this.addSemicolon(d,this.emit(d,"statement"))+`
|
|
2493
|
+
`;return}if(!(O==="for-in"||O==="for-of"||O==="for-as")){w+=this.indent()+this.addSemicolon(d,this.emit(d,"statement"))+`
|
|
2494
|
+
`;return}w+=this.indent()+`const _result = [];
|
|
2495
|
+
`,this.comprehensionTarget="_result";let q=this._skipCompTargetInit;this._skipCompTargetInit=!0,w+=this.emit(d,"value"),this._skipCompTargetInit=q,this.comprehensionTarget=null,w+=this.indent()+`return _result;
|
|
2496
|
+
`;return}let U=!i&&!l&&E&&!o.includes(O)&&!this.hasExplicitControlFlow(d),$=U?"value":"statement",S=this.emit(d,$);if(U)w+=this.indent()+"return "+S+`;
|
|
2497
|
+
`;else w+=this.indent()+this.addSemicolon(d,S)+`
|
|
2498
|
+
`})};if(b){if(y.length===1&&!i)w+=this.indent()+"return "+this.emit(y[0],"value")+`;
|
|
2499
|
+
`;else w+=this.indent()+this.emit(y[0],"statement")+`;
|
|
2500
|
+
`;for(let d of n)w+=this.indent()+d+`;
|
|
2501
|
+
`;D(y.slice(1))}else{for(let A of n)w+=this.indent()+A+`;
|
|
2502
|
+
`;D(y)}if(l&&y.length>0){let A=Array.isArray(y[y.length-1])?y[y.length-1][0]:null;if(!o.includes(A))w+=this.indent()+`return;
|
|
2503
|
+
`}return this.indentLevel--,w+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=r,w}this.sideEffectOnly=r;let m;if(i&&n.length>0){let y=Array.isArray(e)&&e[0]==="super",w=this.emit(e,"statement"),b=n.map((D)=>`${D};`).join(" ");m=y?`{ ${w}; ${b} }`:`{ ${b} ${w}; }`}else if(i||this.hasExplicitControlFlow(e))m=`{ ${this.emit(e,"statement")}; }`;else if(Array.isArray(e)&&(o.includes(e[0])||_.includes(e[0])))m=`{ ${this.emit(e,"statement")}; }`;else if(l)m=`{ ${this.emit(e,"statement")}; return; }`;else m=`{ return ${this.emit(e,"value")}; }`;return this.scopeStack.pop(),m}emitFunctionBody(e,u=[],t=!1){return this.emitBodyWithReturns(e,u,{sideEffectOnly:t,hasExpansionParams:this.expansionAfterParams?.length>0})}emitMethodBody(e,u=[],t=!1,l=[]){return this.emitBodyWithReturns(e,l,{autoAssignments:u,isConstructor:t})}emitBlockWithReturns(e){if(!Array.isArray(e)||e[0]!=="block")return this.emit(e,"statement");let u=this.unwrapBlock(e);return`{
|
|
2504
|
+
${this.withIndent(()=>u.map((l,n)=>{let i=n===u.length-1,a=Array.isArray(l)?l[0]:null,r=i&&!["return","throw","break","continue"].includes(a),f=this.emit(l,r?"value":"statement");return r?this.indent()+"return "+f+";":this.indent()+f+";"})).join(`
|
|
1628
2505
|
`)}
|
|
1629
|
-
${this.indent()}}`}emitLoopBody(
|
|
1630
|
-
${this.withIndent(()=>
|
|
2506
|
+
${this.indent()}}`}emitLoopBody(e){if(!Array.isArray(e))return`{ ${this.emit(e,"statement")}; }`;if(e[0]==="block"||Array.isArray(e[0])){let u=e[0]==="block"?e.slice(1):e;return`{
|
|
2507
|
+
${this.withIndent(()=>u.map((l)=>{if(this.is(l,"comprehension")){let[,n,i,a]=l;return this.indent()+this.emitComprehensionAsLoop(n,i,a)}return this.indent()+this.addSemicolon(l,this.emit(l,"statement"))})).join(`
|
|
1631
2508
|
`)}
|
|
1632
|
-
${this.indent()}}`}return`{ ${this.emit(
|
|
1633
|
-
`,
|
|
1634
|
-
${
|
|
2509
|
+
${this.indent()}}`}return`{ ${this.emit(e,"statement")}; }`}emitLoopBodyWithGuard(e,u){let t=this.unwrap(this.emit(u,"value"));if(!Array.isArray(e))return`{ if (${t}) ${this.emit(e,"statement")}; }`;if(e[0]==="block"||Array.isArray(e[0])){let l=e[0]==="block"?e.slice(1):e,n=this.withIndent(()=>this.indent()),i=`if (${t}) {
|
|
2510
|
+
`,a=this.withIndent(()=>{this.indentLevel++;let f=this.formatStatements(l);return this.indentLevel--,f}),r=this.withIndent(()=>this.indent()+"}");return`{
|
|
2511
|
+
${n}${i}${a.join(`
|
|
1635
2512
|
`)}
|
|
1636
|
-
${
|
|
1637
|
-
${this.indent()}}`}return`{ if (${this.emit(
|
|
1638
|
-
`;let
|
|
1639
|
-
`;else
|
|
1640
|
-
`}else if(
|
|
1641
|
-
`;else
|
|
1642
|
-
`};if(
|
|
1643
|
-
`,this.indentLevel++,
|
|
1644
|
-
`;if(
|
|
1645
|
-
`,this.indentLevel++;if(
|
|
1646
|
-
`;return this.indentLevel--,
|
|
1647
|
-
`,
|
|
1648
|
-
`,this.indentLevel++,
|
|
1649
|
-
`;if(
|
|
1650
|
-
`;if(
|
|
1651
|
-
`,this.indentLevel++;if(
|
|
1652
|
-
`;return this.indentLevel--,
|
|
1653
|
-
`,
|
|
1654
|
-
`,this.indentLevel++,
|
|
1655
|
-
`,this.indentLevel++;if(
|
|
1656
|
-
`;return this.indentLevel--,
|
|
1657
|
-
`,
|
|
1658
|
-
`,
|
|
1659
|
-
`,this.indentLevel++,
|
|
1660
|
-
`,this.indentLevel--,
|
|
1661
|
-
`;else
|
|
1662
|
-
`};if(
|
|
1663
|
-
`,this.indentLevel++,
|
|
1664
|
-
`;return
|
|
1665
|
-
`,this.indentLevel++,
|
|
1666
|
-
`,this.indentLevel++,
|
|
1667
|
-
`;if(
|
|
1668
|
-
`;return
|
|
1669
|
-
`;
|
|
1670
|
-
`,
|
|
1671
|
-
`;else
|
|
1672
|
-
`}return
|
|
1673
|
-
`;else if(
|
|
1674
|
-
`;else
|
|
1675
|
-
`;else
|
|
1676
|
-
`;else{if(
|
|
1677
|
-
`}else if(this.is(
|
|
1678
|
-
`;else
|
|
1679
|
-
`;
|
|
1680
|
-
`}return
|
|
1681
|
-
`,this.indentLevel++,
|
|
1682
|
-
`;else for(let
|
|
1683
|
-
`;this.indentLevel--,
|
|
1684
|
-
`,this.indentLevel++,
|
|
1685
|
-
`;else for(let
|
|
1686
|
-
`;this.indentLevel--,
|
|
1687
|
-
`);if(
|
|
1688
|
-
`))
|
|
1689
|
-
`))
|
|
1690
|
-
`)
|
|
2513
|
+
${r}
|
|
2514
|
+
${this.indent()}}`}return`{ if (${this.emit(u,"value")}) ${this.emit(e,"statement")}; }`}emitComprehensionWithTarget(e,u,t,l){let n="";if(!this._skipCompTargetInit)n+=this.indent()+`${l} = [];
|
|
2515
|
+
`;let i=(r)=>{if(typeof r==="string"&&(r==="break"||r==="continue"))return!0;if(!Array.isArray(r))return!1;if(["break","continue","return","throw"].includes(r[0]))return!0;if(r[0]==="if")return r.slice(1).some(i);return r.some(i)},a=()=>{let r=["for-in","for-of","for-as","while","loop"];if(this.is(e,"block"))for(let f=0;f<e.length-1;f++){let s=e[f+1];if(f!==e.length-2||i(s)||Array.isArray(s)&&r.includes(s[0]))n+=this.indent()+this.emit(s,"statement")+`;
|
|
2516
|
+
`;else n+=this.indent()+`${l}.push(${this.emit(s,"value")});
|
|
2517
|
+
`}else if(i(e))n+=this.indent()+this.emit(e,"statement")+`;
|
|
2518
|
+
`;else n+=this.indent()+`${l}.push(${this.emit(e,"value")});
|
|
2519
|
+
`};if(u.length===1){let[r,f,s,c]=u[0];if(r==="for-in"){let{header:h,setup:o}=this._forInHeader(f,s,c);if(n+=this.indent()+h+` {
|
|
2520
|
+
`,this.indentLevel++,o)n+=this.indent()+o+`
|
|
2521
|
+
`;if(t?.length>0)n+=this.indent()+`if (${t.map((_)=>this.emit(_,"value")).join(" && ")}) {
|
|
2522
|
+
`,this.indentLevel++;if(a(),t?.length>0)this.indentLevel--,n+=this.indent()+`}
|
|
2523
|
+
`;return this.indentLevel--,n+=this.indent()+`}
|
|
2524
|
+
`,n}if(r==="for-of"){let{header:h,own:o,vv:_,oc:m,kvp:y}=this._forOfHeader(f,s,c);if(n+=this.indent()+h+` {
|
|
2525
|
+
`,this.indentLevel++,o)n+=this.indent()+`if (!Object.hasOwn(${m}, ${y})) continue;
|
|
2526
|
+
`;if(_)n+=this.indent()+`let ${_} = ${m}[${y}];
|
|
2527
|
+
`;if(t?.length>0)n+=this.indent()+`if (${t.map((w)=>this.emit(w,"value")).join(" && ")}) {
|
|
2528
|
+
`,this.indentLevel++;if(a(),t?.length>0)this.indentLevel--,n+=this.indent()+`}
|
|
2529
|
+
`;return this.indentLevel--,n+=this.indent()+`}
|
|
2530
|
+
`,n}if(r==="for-as"){let{header:h}=this._forAsHeader(f,s,c);if(n+=this.indent()+h+` {
|
|
2531
|
+
`,this.indentLevel++,t?.length>0)n+=this.indent()+`if (${t.map((o)=>this.emit(o,"value")).join(" && ")}) {
|
|
2532
|
+
`,this.indentLevel++;if(a(),t?.length>0)this.indentLevel--,n+=this.indent()+`}
|
|
2533
|
+
`;return this.indentLevel--,n+=this.indent()+`}
|
|
2534
|
+
`,n}}return n="",n+=this.indent()+`${l} = ${this.emit(["comprehension",e,u,t||[]],"value")};
|
|
2535
|
+
`,n}emitComprehensionAsLoop(e,u,t){let l="",n=t?.length?t.map((a)=>this.emit(a,"value")).join(" && "):null,i=()=>{if(n)l+=this.indent()+`if (${n}) {
|
|
2536
|
+
`,this.indentLevel++,l+=this.indent()+this.emit(e,"statement")+`;
|
|
2537
|
+
`,this.indentLevel--,l+=this.indent()+`}
|
|
2538
|
+
`;else l+=this.indent()+this.emit(e,"statement")+`;
|
|
2539
|
+
`};if(u.length===1){let[a,r,f,s]=u[0];if(a==="for-in"){let{header:c,setup:h}=this._forInHeader(r,f,s);if(l+=c+` {
|
|
2540
|
+
`,this.indentLevel++,h)l+=this.indent()+h+`
|
|
2541
|
+
`;return i(),this.indentLevel--,l+=this.indent()+"}",l}if(a==="for-as"){let{header:c}=this._forAsHeader(r,f,s);return l+=c+` {
|
|
2542
|
+
`,this.indentLevel++,i(),this.indentLevel--,l+=this.indent()+"}",l}if(a==="for-of"){let{header:c,own:h,vv:o,oc:_,kvp:m}=this._forOfHeader(r,f,s);if(l+=c+` {
|
|
2543
|
+
`,this.indentLevel++,h)l+=this.indent()+`if (!Object.hasOwn(${_}, ${m})) continue;
|
|
2544
|
+
`;if(o)l+=this.indent()+`let ${o} = ${_}[${m}];
|
|
2545
|
+
`;return i(),this.indentLevel--,l+=this.indent()+"}",l}}return this.emit(["comprehension",e,u,t],"value")}emitIfElseWithEarlyReturns(e){let[,u,t,...l]=e;return this.indent()+this.emitIfElseEarlyReturnsChain(u,t,l)}emitIfElseEarlyReturnsChain(e,u,t){let l=`if (${this.emit(e,"value")}) {
|
|
2546
|
+
`;l+=this.withIndent(()=>this.emitBranchWithReturn(u)),l+=this.indent()+"}";for(let n of t)if(l+=" else ",this.is(n,"if")){let[,i,a,...r]=n;l+=this.emitIfElseEarlyReturnsChain(i,a,r)}else l+=`{
|
|
2547
|
+
`,l+=this.withIndent(()=>this.emitBranchWithReturn(n)),l+=this.indent()+"}";return l}emitBranchWithReturn(e){e=this.unwrapIfBranch(e);let u=this.unwrapBlock(e),t="";for(let l=0;l<u.length;l++){let n=l===u.length-1,i=u[l],a=Array.isArray(i)?i[0]:null;if(n&&!(a==="return"||a==="throw"||a==="break"||a==="continue"))t+=this.indent()+`return ${this.emit(i,"value")};
|
|
2548
|
+
`;else t+=this.indent()+this.emit(i,"statement")+`;
|
|
2549
|
+
`}return t}emitIfAsExpression(e,u,t){if(this.is(u,"block")&&u.length>2||this.hasStatementInBranch(u)||t.some((r)=>this.is(r,"block")&&r.length>2||this.hasStatementInBranch(r)||this.hasNestedMultiStatement(r))){let r=this.containsAwait(e)||this.containsAwait(u)||t.some((f)=>this.containsAwait(f));return this.asyncIIFEOpen(r)+" "+this.emitIfChain(e,u,t)+" })()"}let n=this.extractExpression(this.unwrapIfBranch(u)),i=this.buildTernaryChain(t),a=this.emit(e,"value");if(this.is(e,"yield")||this.is(e,"await"))a=`(${a})`;return`(${a} ? ${n} : ${i})`}emitIfChain(e,u,t){let l=`if (${this.emit(e,"value")}) `+this.emitBlockWithReturns(u);for(let n of t)if(l+=" else ",this.is(n,"if")){let[,i,a,...r]=n;l+=this.emitIfChain(i,a,r)}else l+=this.emitBlockWithReturns(n);return l}emitIfAsStatement(e,u,t){let l=`if (${this.unwrap(this.emit(e,"value"))}) `;l+=this.emit(this.unwrapIfBranch(u),"statement");for(let n of t)l+=" else "+this.emit(this.unwrapIfBranch(n),"statement");return l}emitSwitchCaseBody(e,u){let t="",l=this.hasExplicitControlFlow(e),n=this.unwrapBlock(e);if(l)for(let i of n)t+=this.indent()+this.emit(i,"statement")+`;
|
|
2550
|
+
`;else if(u==="value")if(this.is(e,"block")&&e.length>2)for(let i=0;i<n.length;i++)if(i===n.length-1)t+=this.indent()+`return ${this.emit(n[i],"value")};
|
|
2551
|
+
`;else t+=this.indent()+this.emit(n[i],"statement")+`;
|
|
2552
|
+
`;else t+=this.indent()+`return ${this.extractExpression(e)};
|
|
2553
|
+
`;else{if(n.length===1&&this.is(n[0],"if")&&!this.hasStatementInBranch(n[0])&&!this.hasNestedMultiStatement(n[0])){let[i,a,r,...f]=n[0],s=this.extractExpression(this.unwrapIfBranch(r)),c=this.buildTernaryChain(f);t+=this.indent()+`(${this.unwrap(this.emit(a,"value"))} ? ${s} : ${c});
|
|
2554
|
+
`}else if(this.is(e,"block")&&e.length>1)for(let i of n)t+=this.indent()+this.emit(i,"statement")+`;
|
|
2555
|
+
`;else t+=this.indent()+this.emit(e,"statement")+`;
|
|
2556
|
+
`;t+=this.indent()+`break;
|
|
2557
|
+
`}return t}emitSwitchAsIfChain(e,u,t){let l="";for(let n=0;n<e.length;n++){let[,i,a]=e[n],r=Array.isArray(i)?i[0]:i;if(l+=(n===0?"":" else ")+`if (${this.emit(r,"value")}) {
|
|
2558
|
+
`,this.indentLevel++,t==="value")l+=this.indent()+`return ${this.extractExpression(a)};
|
|
2559
|
+
`;else for(let f of this.unwrapBlock(a))l+=this.indent()+this.emit(f,"statement")+`;
|
|
2560
|
+
`;this.indentLevel--,l+=this.indent()+"}"}if(u){if(l+=` else {
|
|
2561
|
+
`,this.indentLevel++,t==="value")l+=this.indent()+`return ${this.extractExpression(u)};
|
|
2562
|
+
`;else for(let n of this.unwrapBlock(u))l+=this.indent()+this.emit(n,"statement")+`;
|
|
2563
|
+
`;this.indentLevel--,l+=this.indent()+"}"}if(t==="value"){let n=e.some((i)=>this.containsAwait(i[1])||this.containsAwait(i[2]))||u&&this.containsAwait(u);return this.asyncIIFE(n,l)}return l}asyncIIFE(e,u){return`${e?"await ":""}(${e?"async ":""}() => { ${u} })()`}asyncIIFEOpen(e){return`${e?"await ":""}(${e?"async ":""}() => {`}extractExpression(e){let u=this.unwrapBlock(e);return u.length>0?this.emit(u[u.length-1],"value"):"undefined"}unwrapBlock(e){if(!Array.isArray(e))return[e];if(e[0]==="block")return e.slice(1);if(Array.isArray(e[0])){if(typeof e[0][0]==="string")return[e];return e}return[e]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(e,u){if(!u||u.endsWith(";"))return!1;if(!u.endsWith("}"))return!0;let t=Array.isArray(e)?e[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(t)}addSemicolon(e,u){return u+(this.needsSemicolon(e,u)?";":"")}formatStatements(e,u="statement"){return e.map((t)=>this.indent()+this.addSemicolon(t,this.emit(t,u)))}wrapForCondition(e){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e))return e;if(e.startsWith("(")&&e.endsWith(")"))return e;return`(${e})`}hasExplicitControlFlow(e){if(!Array.isArray(e))return!1;let u=e[0];if(u==="return"||u==="throw"||u==="break"||u==="continue")return!0;if(u==="block")return e.slice(1).some((t)=>Array.isArray(t)&&["return","throw","break","continue"].includes(t[0]));if(u==="switch"){let[,,t]=e;return t?.some((l)=>{return this.unwrapBlock(l[2]).some((i)=>Array.isArray(i)&&["return","throw","break","continue"].includes(i[0]))})}if(u==="if"){let[,,t,l]=e;return this.branchHasControlFlow(t)&&l&&this.branchHasControlFlow(l)}return!1}branchHasControlFlow(e){if(!Array.isArray(e))return!1;let u=this.unwrapBlock(e);if(u.length===0)return!1;let t=u[u.length-1];return Array.isArray(t)&&["return","throw","break","continue"].includes(t[0])}withIndent(e){this.indentLevel++;let u=e();return this.indentLevel--,u}is(e,u,t){if(!Array.isArray(e))return null;if((j(e[0])??e[0])!==u)return null;let l=e.slice(1);if(t!=null&&l.length!==t)return null;return l}unwrap(e){if(typeof e!=="string")return e;while(e.startsWith("(")&&e.endsWith(")")){let u=0,t=0,l=!0,n=!1;for(let i=0;i<e.length;i++){if(e[i]==="(")u++;if(e[i]===")")u--;if(e[i]==="["||e[i]==="{")t++;if(e[i]==="]"||e[i]==="}")t--;if(e[i]===","&&u===1&&t===0)n=!0;if(u===0&&i<e.length-1){l=!1;break}}if(n)l=!1;if(l)e=e.slice(1,-1);else break}return e}_findOptionalInTarget(e){if(!Array.isArray(e))return null;if(e[0]==="?.")return{guard:e[1],rewritten:[".",e[1],e[2]]};if(e[0]==="optindex")return{guard:e[1],rewritten:["[]",e[1],e[2]]};if(e[0]==="."||e[0]==="[]"){let u=this._findOptionalInTarget(e[1]);if(u)return{guard:u.guard,rewritten:[e[0],u.rewritten,e[2]]}}return null}_validateBindingPattern(e,u){if(!Array.isArray(e))return;let t=e[0];if(t==="comprehension"||t==="object-comprehension")this.error(`Cannot use ${t} as a destructuring target`,u);if(t==="array"){for(let l of e.slice(1))this._validateBindingPattern(l,u);return}if(t==="object"){for(let l of e.slice(1)){if(!Array.isArray(l))continue;let n=l[0];if(n===null)this._validateBindingPattern(l[2],u);else if(n===":")this._validateBindingPattern(l[2],u);else if(n==="=")this._validateBindingPattern(l[1],u);else if(n==="...")this._validateBindingPattern(l[1],u);else this.error(`Unexpected object entry '${n}' in destructuring target`,u)}return}if(t==="..."||t==="default"||t==="="){this._validateBindingPattern(e[1],u);return}if(t==="."||t==="[]")return;if(t==="?."||t==="optindex"||t==="optcall")this.error("Cannot use optional chain as a destructuring target",u);this.error(`Cannot use '${t}' expression as a destructuring target`,u)}unwrapLogical(e){if(typeof e!=="string")return e;while(e.startsWith("(")&&e.endsWith(")")){let u=0,t=1/0;for(let l=1;l<e.length-1;l++){if(e[l]==="(")u++;if(e[l]===")")u--;t=Math.min(t,u)}if(t>=0)e=e.slice(1,-1);else break}return e}unwrapIfBranch(e){if(Array.isArray(e)&&e.length===1&&(!Array.isArray(e[0])||e[0][0]!=="block"))return e[0];return e}flattenBinaryChain(e){if(!Array.isArray(e)||e.length<3)return e;let[u,...t]=e;if(u!=="&&"&&u!=="||")return e;let l=[],n=(i)=>{if(Array.isArray(i)&&i[0]===u)for(let a=1;a<i.length;a++)n(i[a]);else l.push(i)};for(let i of t)n(i);return[u,...l]}hasStatementInBranch(e){if(!Array.isArray(e))return!1;if(e.length===1&&Array.isArray(e[0]))return this.hasStatementInBranch(e[0]);let u=e[0];if(u==="return"||u==="throw"||u==="break"||u==="continue")return!0;if(u==="block")return e.slice(1).some((t)=>this.hasStatementInBranch(t));return!1}hasNestedMultiStatement(e){if(!Array.isArray(e))return!1;if(e[0]==="if"){let[u,t,l,...n]=e;return this.is(l,"block")&&l.length>2||n.some((i)=>this.hasNestedMultiStatement(i))}return!1}buildTernaryChain(e){if(e.length===0)return"undefined";let u=this.unwrapIfBranch(e[0]);if(this.is(u,"if")){let[,t,l,...n]=u,i=this.extractExpression(this.unwrapIfBranch(l)),a=this.buildTernaryChain(n);return`(${this.emit(t,"value")} ? ${i} : ${a})`}return this.extractExpression(u)}collectVarsFromArray(e,u){e.slice(1).forEach((t)=>{if(t===","||t==="...")return;if(typeof t==="string"){u.add(t);return}if(Array.isArray(t)){if(t[0]==="..."&&typeof t[1]==="string")u.add(t[1]);else if(t[0]==="="&&typeof t[1]==="string")u.add(t[1]);else if(t[0]==="array")this.collectVarsFromArray(t,u);else if(t[0]==="object")this.collectVarsFromObject(t,u)}})}collectVarsFromLoopHead(e,u){if(!Array.isArray(e))return;e.forEach((t)=>{if(t==null)return;if(typeof t==="string"){u.add(t);return}if(Array.isArray(t)){if(t[0]==="array")this.collectVarsFromArray(t,u);else if(t[0]==="object")this.collectVarsFromObject(t,u)}})}collectVarsFromObject(e,u){e.slice(1).forEach((t)=>{if(!Array.isArray(t))return;if(t[0]==="..."&&typeof t[1]==="string"){u.add(t[1]);return}if(t.length>=2){let[l,n,i]=t;if(l==="="){if(typeof n==="string")u.add(n)}else if(typeof i==="string")u.add(i);else if(Array.isArray(i)){if(i[0]==="array")this.collectVarsFromArray(i,u);else if(i[0]==="object")this.collectVarsFromObject(i,u)}}})}extractStringContent(e){let u=j(e).slice(1,-1),t=m1(e,"indent");if(t)u=u.replace(new RegExp(`\\n${t}`,"g"),`
|
|
2564
|
+
`);if(m1(e,"initialChunk")&&u.startsWith(`
|
|
2565
|
+
`))u=u.slice(1);if(m1(e,"finalChunk")&&u.endsWith(`
|
|
2566
|
+
`))u=u.slice(0,-1);return u}processHeregex(e){let u="",t=!1,l=0,n=()=>{let i=0,a=l-1;while(a>=0&&e[a]==="\\")i++,a--;return i%2===1};while(l<e.length){let i=e[l];if(i==="["&&!n()){t=!0,u+=i,l++;continue}if(i==="]"&&t&&!n()){t=!1,u+=i,l++;continue}if(t){u+=i,l++;continue}if(/\s/.test(i)){l++;continue}if(i==="#"){if(n()){u+=i,l++;continue}let a=l-1;while(a>=0&&e[a]==="\\")a--;if(a<l-1){u+=i,l++;continue}while(l<e.length&&e[l]!==`
|
|
2567
|
+
`)l++;continue}u+=i,l++}return u}addJsExtensionAndAssertions(e){if(e instanceof String)e=j(e);if(typeof e!=="string")return e;let t=e.startsWith('"')||e.startsWith("'")?e.slice(1,-1):e,l=t.startsWith("./")||t.startsWith("../"),n=t,i="";if(l){let a=t.lastIndexOf("/"),r=a>=0?t.substring(a+1):t;if(r.includes(".")){if(r.endsWith(".json"))i=" with { type: 'json' }"}else n=t+".js"}return`'${n}'`+i}containsIt(e){if(!e)return!1;if(e==="it"||e instanceof String&&j(e)==="it")return!0;if(typeof e!=="object")return!1;if(this.is(e,"def")||this.is(e,"->")||this.is(e,"=>"))return!1;if(Array.isArray(e))return e.some((u)=>this.containsIt(u));return!1}containsAwait(e){if(!e)return!1;if(e instanceof String&&m1(e,"bang")===!0)return!0;if(typeof e!=="object")return!1;if(this.is(e,"await"))return!0;if(this.is(e,"for-as")&&e[3]===!0)return!0;if(this.is(e,"def")||this.is(e,"->")||this.is(e,"=>")||this.is(e,"class"))return!1;if(Array.isArray(e))return e.some((u)=>this.containsAwait(u));return!1}containsYield(e){if(!e)return!1;if(typeof e!=="object")return!1;if(this.is(e,"yield")||this.is(e,"yield-from"))return!0;if(this.is(e,"def")||this.is(e,"->")||this.is(e,"=>")||this.is(e,"class"))return!1;if(Array.isArray(e))return e.some((u)=>this.containsYield(u));return!1}extractMemberName(e){if(this.is(e,".")&&e[1]==="this")return e[2];if(this.is(e,"computed"))return`[${this.emit(e[1],"value")}]`;return e}getReactiveRuntime(){return`// ============================================================================
|
|
1691
2568
|
// Rip Reactive Runtime
|
|
1692
2569
|
// A minimal, fine-grained reactivity system
|
|
1693
2570
|
//
|
|
@@ -2052,30 +2929,30 @@ if (typeof globalThis !== 'undefined') {
|
|
|
2052
2929
|
}
|
|
2053
2930
|
|
|
2054
2931
|
// === End Reactive Runtime ===
|
|
2055
|
-
`}}class
|
|
2056
|
-
`),
|
|
2932
|
+
`}}class w2{constructor(e={}){this.options={showTokens:!1,showSExpr:!1,...e}}compile(e,u){if(u)this.options={...this.options,...u};let t=null,l=e.split(`
|
|
2933
|
+
`),n=l.findIndex((w)=>w==="__DATA__");if(n!==-1){let w=l.slice(n+1);t=w.length>0?w.join(`
|
|
2057
2934
|
`)+`
|
|
2058
|
-
`:"",
|
|
2059
|
-
`)}let
|
|
2060
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
2061
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(
|
|
2062
|
-
`+
|
|
2063
|
-
`+
|
|
2064
|
-
${
|
|
2065
|
-
})()`}if(typeof globalThis<"u")globalThis.__ripDebug={enabled:!0,offsetSourceMap:
|
|
2066
|
-
${
|
|
2067
|
-
})()`)}catch(
|
|
2068
|
-
${
|
|
2069
|
-
`:"",
|
|
2070
|
-
${
|
|
2071
|
-
})()`)}catch(
|
|
2072
|
-
`,
|
|
2073
|
-
${
|
|
2074
|
-
`+
|
|
2075
|
-
`+
|
|
2076
|
-
`+
|
|
2077
|
-
`+
|
|
2078
|
-
`+
|
|
2079
|
-
`+R+"}"}return null};return(l)=>{let i=u(l,0);return i!==null?console.log(i):console.dir(l,{depth:null,colors:!0}),l}})();globalThis.raise??=(f,_)=>{throw _!==void 0?new f(_):Error(f)};globalThis.rand??=(f,_)=>_!==void 0?(f>_&&([f,_]=[_,f]),Math.floor(Math.random()*(_-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((_)=>setTimeout(_,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((_,c)=>f.map((n)=>n[c]));({__state:w1,__computed:S3,__effect:I1,__batch:C2}=globalThis.__rip);({setContext:_4,getContext:d3,hasContext:e3}=globalThis.__ripComponent||{});v1=function(f){if(typeof window>"u"||typeof document>"u")throw Error(`Rip App: '${f}' requires a browser environment`)};L2=new WeakMap;N2=new WeakMap;F2=0;f2=w1(0);$1=0;a2=function(f){return typeof f==="string"&&(f.indexOf(".")!==-1||f.indexOf("/")!==-1||f.indexOf("[")!==-1)};k3=function(f){return/^-?\d+$/.test(f)};j2=function(f,_){let c;if(!f[Symbol.for("signals")])Object.defineProperty(f,Symbol.for("signals"),{value:new Map,enumerable:!1});if(c=f[Symbol.for("signals")].get(_),!c)c=w1(f[_]),f[Symbol.for("signals")].set(_,c);return c};Z1=function(f){return j2(f,Symbol.for("keys"))};n4=function(f){let _;if(!(f!=null&&typeof f==="object"))return f;if(f[Symbol.for("stash")])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(_=L2.get(f),_)return _;return m2(f)};m2=function(f){let _,c;return c=null,_={get(n,u){let l,i,w;if(u===Symbol.for("stash"))return!0;if(u===Symbol.for("raw"))return n;if(typeof u==="symbol")return Reflect.get(n,u);if(u==="length"&&Array.isArray(n))return Z1(n).value,n.length;if(!$1&&a2(u))return N1(c,u);if(l=c4(c,u),l)return l;if(i=j2(n,u),w=i.value,w!=null&&typeof w==="object")return n4(w);return w},set(n,u,l){let i,w,D,h,A,R;if(!$1&&a2(u))return L1(c,u,l),!0;if(Array.isArray(n)&&u==="length"){if(h=n.length,w=+l,n.length=w,w!==h){if(n[Symbol.for("signals")]){for(let U of(($,z)=>Array.from({length:Math.max(0,Math.abs(z-$))},(M,F)=>$+F*($<=z?1:-1)))(Math.min(h,w),Math.max(h,w)))if(R=n[Symbol.for("signals")].get(String(U)),R!=null)R.value=n[U]}Z1(n).value=++F2,f2.value++}return!0}if(D=n[u],A=l?.[Symbol.for("raw")]?l[Symbol.for("raw")]:l,A===D)return!0;if(n[u]=A,n[Symbol.for("signals")]?.has(u))n[Symbol.for("signals")].get(u).value=A;if(D===void 0&&A!==void 0)Z1(n).value=++F2;return f2.value++,!0},deleteProperty(n,u){let l;if(delete n[u],l=n[Symbol.for("signals")]?.get(u),l!=null)l.value=void 0;return Z1(n).value=++F2,f2.value++,!0},ownKeys(n){return Z1(n).value,Reflect.ownKeys(n)}},c=new Proxy(f,_),L2.set(f,c),c};G3=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;m1=function(f){let _,c,n,u,l;n=("."+f).split(G3),n.shift(),l=[],c=0;while(c<n.length){if(u=n[c],_=u[0],_==="."||_==="/")l.push(u.slice(1));else if(_==="[")if(u[1]==='"'||u[1]==="'")l.push(u.slice(2,-2));else l.push(+u.slice(1,-1));c+=2}return l};j1=function(f,_){let c;if(typeof f==="number"&&f<0){if(c=V1(_),Array.isArray(c))return c.length+f}return f};N1=function(f,_){let c,n,u;return u=m1(_),c=f,$1++,(()=>{try{for(let l of u){if(c==null)return;c=c[j1(l,c)]}return c}finally{$1--}})()};L1=function(f,_,c){let n,u,l,i,w,D;return D=m1(_),i=f,$1++,(()=>{try{for(let h=0;h<D.length;h++){let A=D[h];if(u=j1(A,i),h===D.length-1)i[u]=c;else{if(i[u]==null)l=D[h+1],i[u]=typeof l==="number"||k3(l)?[]:{};i=i[u]}}return c}finally{$1--}})()};X3={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0};c4=function(f,_){let c,n;if(!X3[_])return;if(c=N2.get(f),!c)c={},N2.set(f,c);if(c[_])return c[_];return n=(()=>{switch(_){case"inc":return function(u,l=1){let i;return i=N1(f,u)??0,L1(f,u,i+l)};case"dec":return function(u,l=1){let i;return i=N1(f,u)??0,L1(f,u,i-l)};case"flip":return function(u){let l;return l=N1(f,u)??!1,L1(f,u,!l)};case"join":return function(u,l){return C2(function(){let i,w,D;if(w=N1(f,u),!(w!=null&&typeof w==="object"))L1(f,u,{}),w=N1(f,u);return $1++,(()=>{try{return(()=>{let h=[];for(let A in l){let R=l[A];h.push(w[A]=R)}return h})()}finally{$1--}})()})};case"keys":return function(u){let l,i,w,D;return $1++,(()=>{try{w=m1(u),l=f;for(let h of w){if(l==null)return[];l=l[j1(h,l)]}if(!(l!=null&&typeof l==="object"))return[];return D=V1(l),Z1(D).value,Object.keys(D)}finally{$1--}})()};case"has":return function(u){let l,i,w,D,h,A;return $1++,(()=>{try{if(h=m1(u),!(h.length>0))return!1;w=f;for(let R=0;R<h.length;R++){let U=h[R];if(i=j1(U,w),R===h.length-1)return A=V1(w),Z1(A).value,Object.prototype.hasOwnProperty.call(A,i);if(w==null)return!1;w=w[i]}return!1}finally{$1--}})()};case"del":return function(u){let l,i,w,D,h;return $1++,(()=>{try{if(h=m1(u),!(h.length>0))return;return w=f,(()=>{let A=[];for(let R=0;R<h.length;R++){let U=h[R];if(i=j1(U,w),R===h.length-1){delete w[i];return}if(w==null)return;A.push(w=w[i])}return A})()}finally{$1--}})()}}})(),c[_]=n,n};var i4=function(f={}){return m2(f)},V1=function(f){return f?.[Symbol.for("raw")]?f[Symbol.for("raw")]:f},U0=function(f){return f?.[Symbol.for("stash")]===!0},h4=function(f,_={}){let c,n,u,l,i,w,D,h,A,R;return v1("persistStash"),A=V1(f)||f,function(){return A[Symbol.for("persisted")]?null:void 0};A[Symbol.for("persisted")]=!0,D=_.local?localStorage:sessionStorage,h=_.key||"__rip_app";try{if(i=D.getItem(h),i){w=JSON.parse(i);for(let U in w){let $=w[U];f.data[U]=$}}}catch{}return c=function(){return(()=>{try{return D.setItem(h,JSON.stringify(V1(f.data)))}catch{return null}})()},u=I1(function(){let U;return f2.value,U=setTimeout(c,2000),function(){return clearTimeout(U)}}),window.addEventListener("beforeunload",c),n=!1,function(){if(n)return;return n=!0,u?.(),window.removeEventListener("beforeunload",c),c(),A[Symbol.for("persisted")]=!1}},R0=function(f,_={}){let c,n,u,l,i,w,D,h;if(c=w1(_.initial??null),u=w1(!1),n=w1(null),w=0,l=null,D=async function(){let A,R;return l?.abort(),l=typeof AbortController<"u"?new AbortController:null,A=++w,u.value=!0,n.value=null,await(async()=>{try{if(R=await f(l?.signal),A!==w)return;return c.value=R,R}catch(U){if(A!==w)return;if(U?.name==="AbortError")return;throw n.value=U,U}finally{if(A===w)u.value=!1}})()},i=function(){return w++,l?.abort(),l=null,u.value=!1,n.value=null},h={data:void 0,loading:void 0,error:void 0,refetch:D,dispose:i},Object.defineProperty(h,"data",{get(){return c.value}}),Object.defineProperty(h,"loading",{get(){return u.value}}),Object.defineProperty(h,"error",{get(){return n.value}}),!_.lazy)D().catch(function(){return null});return h};_2=function(f){return typeof f==="function"?f:function(){return f.value}};g1=function(f,_){return Object.defineProperty(f,"dispose",{value(){return _?.()},configurable:!0,writable:!0}),f};l2=function(f,_,c){let n;return n={read(){return f.read()}},Object.defineProperty(n,"value",{get(){return f.value},set(u){return _.value=u}}),g1(n,c)};var w4=function(f,_){let c,n,u;return n=_2(_),u=w1(!!n()),c=I1(function(){let l;if(n())return l=setTimeout(function(){return u.value=!0},f),function(){return clearTimeout(l)};else return u.value=!1}),typeof _!=="function"?l2(u,_,c):g1(u,c)},$0=function(f,_){let c,n,u;return n=_2(_),u=w1(n()),c=I1(function(){let l,i;return i=n(),l=setTimeout(function(){return u.value=i},f),function(){return clearTimeout(l)}}),typeof _!=="function"?l2(u,_,c):g1(u,c)},F0=function(f,_){let c,n,u,l;return n=_2(_),l=w1(n()),u=0,c=I1(function(){let i,w,D,h;if(h=n(),i=Date.now(),w=f-(i-u),w<=0)return l.value=h,u=i;else return D=setTimeout(function(){return l.value=n(),u=Date.now()},w),function(){return clearTimeout(D)}}),typeof _!=="function"?l2(l,_,c):g1(l,c)},M0=function(f,_){let c,n,u;return n=_2(_),u=w1(!!n()),c=I1(function(){let l;if(n())return u.value=!0;else return l=setTimeout(function(){return u.value=!1},f),function(){return clearTimeout(l)}}),typeof _!=="function"?l2(u,_,c):g1(u,c)},D4=function(){let f,_,c,n;return _=new Map,n=new Set,f=new Map,c=function(u,l){let i,w=[];for(let D of Array.from(n))w.push((()=>{try{return D(u,l)}catch(h){return console.error("[Rip] watcher error:",h)}})());return w},{read(u){return _.get(u)},write(u,l){let i;return i=!_.has(u),_.set(u,l),f.delete(u),c(i?"create":"change",u)},del(u){return _.delete(u),f.delete(u),c("delete",u)},exists(u){return _.has(u)},size(){return _.size},list(u=""){let l,i,w,D;D=[],i=u?u+"/":"";for(let[h]of _)if(h.startsWith(i)){if(w=h.slice(i.length),w.includes("/"))continue;D.push(h)}return D},listAll(u=""){let l,i,w;w=[],i=u?u+"/":"";for(let[D]of _)if(D.startsWith(i))w.push(D);return w},load(u){let l,i,w=[];for(let D in u){let h=u[D];_.set(D,h),w.push(f.delete(D))}return w},watch(u){let l;return n.add(u),l=!1,function(){if(l)return;return l=!0,n.delete(u)}},getCompiled(u){return f.get(u)},setCompiled(u,l){return f.set(u,l)}}};x3=function(f){let _;if(_=f.replace(/\.rip$/,""),_=_.replace(/\[\.\.\.(\w+)\]/g,"*$1"),_=_.replace(/\[(\w+)\]/g,":$1"),_==="index")return"/";return _=_.replace(/\/index$/,""),"/"+_};f4=function(f){let _,c,n;return c=[],_=f.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),n=_.replace(/\*(\w+)/g,function(u,l){return c.push(l),"(.*)"}).replace(/:(\w+)/g,function(u,l){return c.push(l),"([^/]+)"}),{regex:new RegExp("^"+n+"$"),names:c}};u4=function(f,_){let c,n,u,l,i;for(let w of _)if(n=f.match(w.regex.regex),n){l={};for(let D=0;D<w.regex.names.length;D++){let h=w.regex.names[D];l[h]=decodeURIComponent(n[D+1])}return{route:w,params:l}}return null};M2=function(f,_="components"){let c,n,u,l,i,w,D,h,A,R;h=[],l=new Map,c=f.listAll(_);for(let U of c){if(D=U.slice(_.length+1),!D.endsWith(".rip"))continue;if(i=D.split("/").pop(),i==="_layout.rip"){n=D==="_layout.rip"?"":D.slice(0,-12),l.set(n,U);continue}if(i.startsWith("_"))continue;if(A=D.split("/"),A.length>1&&A.some(function($,z){return z<A.length-1&&$.startsWith("_")}))continue;R=x3(D),w=f4(R),h.push({pattern:R,regex:w,file:U,rel:D})}return h.sort(function(U,$){let z,M,F,H;if(M=(U.pattern.match(/:/g)||[]).length,H=($.pattern.match(/:/g)||[]).length,z=U.pattern.includes("*")?1:0,F=$.pattern.includes("*")?1:0,z!==F)return z-F;if(M!==H)return M-H;return U.pattern.localeCompare($.pattern)}),{routes:h,layouts:l}};p3=function(f,_,c){let n,u,l,i,w,D;if(n=[],i=f.slice(_.length+1),D=i.split("/"),u="",c.has(""))n.push(c.get(""));for(let h=0;h<D.length;h++){let A=D[h];if(h===D.length-1)break;if(u=u?u+"/"+A:A,c.has(u))n.push(c.get(u))}return n};var A4=function(f,_={}){let c,n,u,l,i,w,D,h,A,R,U,$,z,M,F,H,Q,O,W,K,Y,q,y,Z;if(v1("createRouter"),W=_.root||"components",U=_.base||"",$=_.hash||!1,F=_.onError||null,Y=function(J){if(!U)return J;if(J===U)return"/";if(J.startsWith(U+"/"))return J.slice(U.length);return J},R=function(J){return U?U+J:J},Q=function(){let J;if($){if(J=location.hash.slice(1),!J)return"/";return J[0]==="/"?J:"/"+J}else return location.pathname+location.search+location.hash},Z=function(J){return $?J==="/"?location.pathname:"#"+J.slice(1):R(J)},D=w1(Y($?Q():location.pathname)),w=w1({}),A=w1(null),u=w1([]),h=w1({}),n=w1(""),l=w4(100,w1(!1)),i=w1(D.value),q=M2(f,W),z=new Set,y=f.watch(function(J,X){if(!X.startsWith(W+"/"))return;return q=M2(f,W)}),O=function(J){let X,N,S,I,o,T,G,e;if(T=J.split("?")[0].split("#")[0],I=Y(T),I=I[0]==="/"?I:"/"+I,o=J.split("?")[1]?.split("#")[0]||"",S=J.includes("#")?J.split("#")[1]:"",G=u4(I,q.routes),G){if(N=I,o)N+=`?${o}`;if(S)N+=`#${S}`;C2(function(){return D.value=I,w.value=G.params,A.value=G.route,u.value=p3(G.route.file,W,q.layouts),h.value=Object.fromEntries(new URLSearchParams(o)),n.value=S,i.value=N}),e=Array.from(z);for(let P of e)try{P(K.current)}catch(E){console.error("[Rip] router onNavigate callback error:",E)}return!0}if(F)F({status:404,path:I});return!1},H=function(){return O(Q())},typeof window<"u")window.addEventListener("popstate",H);if(M=function(J){let X,N,S;if(J.defaultPrevented)return;if(J.button!==0||J.metaKey||J.ctrlKey||J.shiftKey||J.altKey)return;N=J.target;while(N&&N.tagName!=="A")N=N.parentElement;if(!N?.href)return;if(S=new URL(N.href,location.origin),S.origin!==location.origin)return;if(N.target==="_blank"||N.hasAttribute("data-external"))return;if(N.hasAttribute("download"))return;if(N.hasAttribute("data-router-ignore"))return;if(U&&!$){if(!(S.pathname===U||S.pathname.startsWith(U+"/")))return}return J.preventDefault(),X=$&&S.hash?S.hash.slice(1)||"/":S.pathname+S.search+S.hash,K.push(X)},typeof document<"u")document.addEventListener("click",M);return K={push(J){return O(J)?history.pushState(null,"",Z(i.read())):void 0},replace(J){return O(J)?history.replaceState(null,"",Z(i.read())):void 0},back(){return history.back()},forward(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate(J){return z.add(J),function(){return z.delete(J)}},rebuild(){return q=M2(f,W)},routes:void 0,init(){return O(Q()),K},destroy(){if(typeof window<"u")window.removeEventListener("popstate",H);if(typeof document<"u")document.removeEventListener("click",M);return y?.(),y=null,l?.dispose?.(),z.clear()}},c=S3(function(){return{path:D.value,params:w.value,route:A.value,layouts:u.value,query:h.value,hash:n.value}}),Object.defineProperty(K,"current",{get(){return c.value}}),Object.defineProperty(K,"path",{get(){return D.value}}),Object.defineProperty(K,"params",{get(){return w.value}}),Object.defineProperty(K,"route",{get(){return A.value}}),Object.defineProperty(K,"layouts",{get(){return u.value}}),Object.defineProperty(K,"query",{get(){return h.value}}),Object.defineProperty(K,"hash",{get(){return n.value}}),Object.defineProperty(K,"navigating",{get(){return l.value},set(J){return l.value=J}}),Object.defineProperty(K,"routes",{get(){return q.routes}}),K};v3=function(f,_){let c,n;if(f.length!==_.length)return!1;for(let u=0;u<f.length;u++)if(f[u]!==_[u])return!1;return!0};T2=function(f){let _,c;if(typeof f.default==="function"&&(f.default.prototype?.mount||f.default.prototype?._create))return f.default;for(let n in f){let u=f[n];if(typeof u==="function"&&(u.prototype?.mount||u.prototype?._create))return u}return typeof f.default==="function"?f.default:void 0};B2=function(f){let _,c,n;c={};for(let u in f){let l=f[u];if(typeof l==="function"&&(l.prototype?.mount||l.prototype?._create))c[u]=l}return c};o3=function(f){let _;return _=f.split("/").pop().replace(/\.rip$/,""),_.replace(/(^|[-_])([a-z])/g,function(c,n,u){return u.toUpperCase()})};s3=function(f,_="components"){let c,n,u,l;n={};for(let i of f.listAll(_)){if(!i.endsWith(".rip"))continue;if(c=i.split("/").pop(),c.startsWith("_"))continue;if(u=o3(i),n[u])console.warn(`[Rip] Component name collision: ${u} (${n[u]} vs ${i})`);n[u]=i}return n};l4=function(f,_,c){let n,u,l,i;if(u=f.replace(/^(\.\.\/|\.\/)+/,""),_){l=_.split("/"),l.pop();for(let w of f.split("/"))if(w==="..")l.pop();else if(w!==".")l.push(w);if(n=l.join("/"),c.exists(n))return n}if(c.exists(`components/_lib/${u}`))return`components/_lib/${u}`;if(c.exists(`components/${u}`))return`components/${u}`;return null};I2=function(f){let _,c,n,u,l,i,w,D,h;if(!f)return[];if(D=f.trim(),!D)return[];if(l=[],_=D.indexOf("{"),_>=0){if(c=D.lastIndexOf("}"),c<0)return l;n=D.slice(_+1,c);for(let A of n.split(",")){if(h=A.trim(),!h)continue;l.push(h.split(/\s+as\s+/).pop().trim())}D=D.slice(0,_).replace(/,\s*$/,"").trim()}for(let A of D.split(",")){if(i=A.trim(),!i)continue;if(/^\*\s+as\s+/.test(i))l.push(i.replace(/^\*\s+as\s+/,"").trim());else l.push(i)}return l};r1=async function(f,_,c=null,n=null,u=null){let l,i,w,D,h,A,R,U,$,z,M,F,H,Q,O,W,K,Y,q,y,Z,J,X,N,S,I,o,T,G,e,P,E,a,d,k,n1,B,g;if(c&&n){if(h=c.getCompiled(n),h)return h}if(u&&n)u.compiling??={},u.compiling[n]=!0;return await(async()=>{try{if(R=globalThis?.__ripDebug?.enabled&&n,P=0,W=R?_(f,{sourceMap:"inline",filename:n}):_(f),u){if(O=new Set,c){d=/^(\s*import\s+(?:(.*?)\s+from\s+)?['"])([^'"]*\.rip)(['"];?\s*)$/gm,y=Array.from(W.matchAll(d));for(let j=y.length-1;j>=0;j--){let s=y[j];if([H,G,i,k,T]=s,n1=l4(k,n,c),n1===n)continue;if(!n1){if(J=`[Rip] Could not resolve import: ${k}`,n)J+=` (from ${n})`;console.warn(J);continue}if(!u.blobUrls?.[n1]){if(u.compiling?.[n1])continue;if(z=c.read(n1),z)await r1(z,_,c,n1,u)}if(D=u.blobUrls?.[n1],D){a=`${G}${D}${T}`,W=W.slice(0,s.index)+a+W.slice(s.index+H.length);for(let f1 of I2(i))O.add(f1)}}}l=/^\s*import\s+(?:(.*?)\s+from\s+)?['"][^'"]*['"];?\s*$/gm;for(let j of W.matchAll(l))for(let s of I2(j[1]))O.add(s);I={};for(let j in u.map){let s=u.map[j];if(O.has(j))continue;if(s!==n&&W.includes(`new ${j}(`)){if(!u.classes[j]){if(z=c.read(s),z){U=await r1(z,_,c,s,u),F=B2(U);for(let f1 in F){let c1=F[f1];u.classes[f1]=c1}}}if(u.classes[j])I[j]=!0}}if(S=Object.keys(I),S.length>0)Y=JSON.stringify(u.key),e=`const {${S.join(", ")}} = globalThis[${Y}];
|
|
2080
|
-
`,W
|
|
2081
|
-
`:"",Q)P+=1;if(M=Q+W,R&&P>0){if(o=globalThis?.__ripDebug?.offsetSourceMap,o)M=o(M,P)}if(w=new Blob([M],{type:"application/javascript"}),B=URL.createObjectURL(w),E=null,u&&n){if(u.blobUrls??={},E=u.blobUrls[n],E&&E!==B)try{URL.revokeObjectURL(E)}catch{}u.blobUrls[n]=B}if(Z=await import(B),A=!0,u){F=B2(Z);for(let j in F){let s=F[j];u.classes[j]=s}}if(c&&n)c.setCompiled(n,Z);return Z}finally{if(u&&n){if(u.compiling)delete u.compiling[n]}if(!A&&B&&u&&n){try{URL.revokeObjectURL(B)}catch{}if(u.blobUrls?.[n]===B)delete u.blobUrls[n]}}})()};var U4=function(f={}){let _,c,n,u,l,i,w,D,h,A,R,U,$,z,M,F,H,Q,O,W,K,Y,q,y,Z;if(v1("createRenderer"),{router:O,app:_,components:n,resolver:Q,compile:c,target:Y,onError:F}=f,u=typeof Y==="string"?document.querySelector(Y):Y||document.getElementById("app"),!u)u=document.createElement("div"),u.id="app",document.body.appendChild(u);return l=null,h=null,w=null,D=null,i=[],$=[],z=u,R=0,A=null,Z=null,U=function(J){let X,N;if(!Q)return;if(Q.blobUrls?.[J]){try{URL.revokeObjectURL(Q.blobUrls[J])}catch{}delete Q.blobUrls[J]}return Q.classes&&Q.map?(()=>{let S=[];for(let I in Q.map){let o=Q.map[I];S.push(o===J?delete Q.classes[I]:void 0)}return S})():void 0},y=function(){if(l){try{l.unmount?.({removeDOM:!1})}catch(J){console.error("[Rip] page unmount error:",J)}return l=null,h=null}},q=function(){let J;y();for(let X=$.length-1;X>=0;X--){let N=$[X];try{N.unmount?.({removeDOM:!0})}catch(S){console.error("[Rip] layout unmount error:",S)}}return $=[],z=u,w=null,D=null,i=[]},W=function(J,X){let N,S;if(!(J&&X))return!1;if(Object.keys(J).length!==Object.keys(X).length)return!1;for(let I in J){let o=J[I];if(X[I]!==o)return!1}return!0},M=async function(J,X=!1){let N,S,I,o,T,G,e,P,E,a,d,k,n1,B,g,j,s,f1,c1,m,x,_1,p,b,V,L,r,l1,v,u1,A1;if({route:r,params:p,layouts:k,query:L}=J,!r)return;if(l1=r.file===h&&W(p,w),l1&&!X){if(!W(L,D)){if(D=L,l?.load)try{await l.load(p,L)}catch(h1){if(console.error(`Renderer: error in query-only load for ${r.file}:`,h1),F)F({status:500,message:h1.message,error:h1})}}return}return e=++R,O.navigating=!0,await(async()=>{try{if(u1=n.read(r.file),!u1){if(F)F({status:404,message:`File not found: ${r.file}`});O.navigating=!1;return}if(j=await r1(u1,c,n,r.file,Q),e!==R){O.navigating=!1;return}if(N=T2(j),!N){if(F)F({status:500,message:`No component found in ${r.file}`});O.navigating=!1;return}if(g=!v3(k,i),f1=l?._target,g)q();else y();if(w=p,D=L,s=g?u:z,g&&k.length>0){u.innerHTML="",s=u,G=globalThis.__ripComponent?.__pushComponent,o=globalThis.__ripComponent?.__popComponent,c1=null;for(let h1 of k){if(B=n.read(h1),!B)continue;if(n1=await r1(B,c,n,h1,Q),e!==R){O.navigating=!1;return}if(S=T2(n1),!S)continue;V=G?.(c1);try{E=new S({app:_,params:p,router:O})}finally{o?.(V)}if(E.beforeMount){I=G?.(E);try{E.beforeMount()}finally{o?.(I)}}A1=document.createElement("div"),A1.setAttribute("data-layout",h1),s.appendChild(A1),E.mount(A1),$.push(E),c1=E,v=A1.querySelector("#content")||A1,s=v}i=[...k],z=s}else if(g)u.innerHTML="",i=[],z=u;_1=document.createElement("div"),_1.setAttribute("data-component",r.file),s.appendChild(_1),G=globalThis.__ripComponent?.__pushComponent,o=globalThis.__ripComponent?.__popComponent,m=$[$.length-1]||null,x=G?.(m);try{a=new N({app:_,params:p,query:L,router:O})}finally{o?.(x)}if(a.beforeMount){T=G?.(a);try{a.beforeMount()}finally{o?.(T)}}if(a.mount(_1),l=a,h=r.file,a.load)await a.load(p,L);return f1?.remove(),O.navigating=!1}catch(h1){if(O.navigating=!1,console.error(`Renderer: error mounting ${r.file}:`,h1),F)F({status:500,message:h1.message,error:h1});P=!1;for(let s1=$.length-1;s1>=0;s1--){let q1=$[s1];if(q1.onError)try{q1.onError(h1),P=!0;break}catch(t1){console.error("Renderer: error boundary failed:",t1)}}return(()=>{if(!P)return q(),b=document.createElement("pre"),b.style.cssText="color:red;padding:1em",b.textContent=h1.stack||h1.message,u.innerHTML="",u.appendChild(b)})()}})()},K=!1,H={start(){if(K)return H;return K=!0,A=I1(function(){let J;return J=O.current,J.route?M(J):void 0}),Z=n?.watch(function(J,X){return(Array.isArray(["change","delete"])?["change","delete"].includes(J):(J in["change","delete"]))?U(X):void 0}),O.init(),H},stop(){let J,X;if(!K)return;if(K=!1,q(),A)A(),A=null;if(Z?.(),Z=null,Q?.blobUrls){for(let N in Q.blobUrls){if(!Object.hasOwn(Q.blobUrls,N))continue;let S=Q.blobUrls[N];try{URL.revokeObjectURL(S)}catch{}}Q.blobUrls={}}return u.innerHTML=""},remount(J=!1){let X,N;return N=typeof J==="object"?!!J.force:!!J,X=O.current,X.route?M(X,N):void 0}},H};t3=function(f){let _,c,n,u,l,i;return v1("connectWatch"),l=1000,u=30000,_=!1,n=null,i=null,c=function(){if(_)return;return n=new EventSource(f),n.addEventListener("connected",function(){return l=1000,console.log("[Rip] Hot reload connected")}),n.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),n.addEventListener("css",function(){let w,D,h=[];for(let A of document.querySelectorAll('link[rel="stylesheet"]'))w=new URL(A.href),w.searchParams.set("_t",Date.now()),A.href=w.toString();return h}),n.onerror=function(){if(n.close(),n=null,_)return;return i=setTimeout(c,l),l=Math.min(l*2,u)}},c(),function(){if(_)return;if(_=!0,i)clearTimeout(i),i=null;return n?.close(),n=null}};var z0=async function(f={}){let _,c,n,u,l,i,w,D,h,A,R,U,$,z,M,F,H,Q,O,W,K,Y,q,y,Z,J,X,N,S;if(v1("launch"),c=(f.base||"").replace(/\/+$/,""),X=f.target||"#app",w=f.compile||null,F=f.persist||!1,$=f.hash||!1,!w)w=globalThis?.compileToJS||null;if(!document.querySelector(X))A=document.createElement("div"),A.id=X.replace(/^#/,""),document.body.prepend(A);if(f.bundle)u=f.bundle;else if(f.bundleUrl){if(z={},U=`__rip_etag_${f.bundleUrl}`,l=sessionStorage.getItem(U),l)z["If-None-Match"]=l;if(O=await fetch(f.bundleUrl,{headers:z}),O.status===304)u=JSON.parse(sessionStorage.getItem(`${U}_data`));else if(O.ok){if(u=await O.json(),R=O.headers.get("etag"),R)sessionStorage.setItem(U,R),sessionStorage.setItem(`${U}_data`,JSON.stringify(u))}else throw Error(`launch: ${f.bundleUrl} (${O.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(_=i4({components:{},routes:{},data:{}}),globalThis.__ripApp=_,n=D4(),u.components)n.load(u.components);if(i=`__rip_${c.replace(/\//g,"_")||"app"}`,W={map:s3(n),classes:{},key:i},globalThis[i]=W.classes,Z=null,y="components/_lib/stash.rip",n.exists(y)){if(J=n.read(y),J)try{if(q=await r1(J,w,n,y,W),q?.stash)Z=q.stash}catch(I){console.error(`[Rip] Failed to load app/stash.rip: ${I.message}`,I)}}if(Z&&u.data)for(let I in u.data){let o=u.data[I];Z[I]=o}if(Y=Z??u.data,Y)_.data=Y;if(u.routes)_.routes=u.routes;if(H=null,F)H=h4(_,{local:F==="local",key:`__rip_${c}`});if(_.data.title)document.title=_.data.title;if(K=A4(n,{root:"components",base:c,hash:$,onError(I){return console.error(`[Rip] Error ${I.status}: ${I.message||I.path}`)}}),Q=U4({router:K,app:_,components:n,resolver:W,compile:w,target:X,onError(I){return console.error(`[Rip] ${I.message}`,I.error)}}),Q.start(),S=null,u.data?.watch)S=t3(`${c}/watch`);return h=!1,D=function(){if(h)return;if(h=!0,S?.(),Q.stop(),K.destroy(),H?.(),delete globalThis[i],delete globalThis.__ripApp,delete globalThis.__ripLaunched,window.app===_)delete window.app;return window.__RIP__?.app===_?delete window.__RIP__:void 0},window.app=_,window.__RIP__={app:_,components:n,router:K,renderer:Q,resolver:W,destroy:D,version:"0.3.0"},globalThis.__ripLaunched=!0,{app:_,components:n,router:K,renderer:Q,destroy:D}};R1=function(f,_){if(!_)return;return f.preventDefault(),f.stopPropagation(),_()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(f){return globalThis.__ariaLastFocusedEl=f.target},!0),globalThis.__ariaFocusTrackerBound=!0;I3=function(f,_){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return R1(f,_.next);case"ArrowUp":return R1(f,_.prev);case"Home":case"PageUp":return R1(f,_.first);case"End":case"PageDown":return R1(f,_.last);case"Enter":case" ":return R1(f,_.select);case"Escape":return R1(f,_.dismiss);case"Tab":return _.tab?.();default:return f.key.length===1?_.char?.(f.key):void 0}})()};T3=function(f,_,c,n=[],u=null){let l,i,w,D,h;if(i=function(A){return typeof A==="function"?A():A},h=i(_),h&&h.__ariaPopupDismiss)h.__ariaPopupDismiss(),h.__ariaPopupDismiss=null;if(!(f&&h))return;return w=(A)=>{return![h,...n.map(i)].some(function(R){return R?.contains(A.target)})?c():void 0},D=(A)=>{if(h?.contains(A.target))return;return u?u():c()},document.addEventListener("mousedown",w),window.addEventListener("scroll",D,!0),l=function(){return document.removeEventListener("mousedown",w),window.removeEventListener("scroll",D,!0)},h.__ariaPopupDismiss=l,l};a3=function(f=250){let _;return _=0,{block(c=f){return _=Date.now()+c},canOpen(){return Date.now()>=_}}};E3=function(f,_,c,n=null){let u,l,i,w,D,h,A,R,U,$,z;if(w=function(M){return typeof M==="function"?M():M},u=function(){let M,F;if(M=document.activeElement,M&&M!==document.body)return M;if(F=globalThis.__ariaLastFocusedEl,F?.isConnected!==!1)return F;return null},i=w(_),!i)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(A=null,z=function(M){if(M){i.hidden=!1;try{i.inert=!1}catch{}return i.removeAttribute("aria-hidden")}else{try{i.inert=!0}catch{}return i.setAttribute("aria-hidden","true"),i.hidden=!0}},R=function(){let M,F;if(F=A,A=null,!F?.focus)return;return M=function(H=6){if(F.isConnected===!1)return;try{F.focus({preventScroll:!0})}catch{F.focus()}if(document.activeElement===F||H<=1)return;return setTimeout(function(){return M(H-1)},16)},requestAnimationFrame(function(){return M()})},i.__ariaBindPopover)i.removeEventListener("toggle",i.__ariaBindPopover),i.__ariaBindPopover=null;if(D=function(M){let F;if(F=M.newState==="open",F)A=w(n)||u(),z(!0);else z(!1),R();return c?.(F)},i.addEventListener("toggle",D),i.__ariaBindPopover=D,U=i.matches(":popover-open"),l=!!f,U!==l){if($=w(n),l)A=$||u(),z(!0);h=$&&l?{force:l,source:$}:{force:l};try{i.togglePopover(h)}catch{}}else z(l);return function(){return i.removeEventListener("toggle",D),i.__ariaBindPopover===D?i.__ariaBindPopover=null:void 0}};b3=function(f,_,c,n=!0){let u,l,i,w,D,h,A,R,U,$;if(i=function(z){return typeof z==="function"?z():z},u=function(){let z,M;if(z=document.activeElement,z&&z!==document.body)return z;if(M=globalThis.__ariaLastFocusedEl,M?.isConnected!==!1)return M;return null},l=i(_),!l?.showModal)return;if(R=null,$=function(z){if(z){l.hidden=!1;try{l.inert=!1}catch{}return l.removeAttribute("aria-hidden")}else{try{l.inert=!0}catch{}return l.setAttribute("aria-hidden","true"),l.hidden=!0}},U=function(){let z,M;if(M=R,R=null,!M?.focus)return;return z=function(F=6){if(M.isConnected===!1)return;try{M.focus({preventScroll:!0})}catch{M.focus()}if(document.activeElement===M||F<=1)return;return setTimeout(function(){return z(F-1)},16)},requestAnimationFrame(function(){return z()})},l.__ariaBindDialog)[h,A]=l.__ariaBindDialog,l.removeEventListener("cancel",h),l.removeEventListener("close",A),l.__ariaBindDialog=null;if(w=function(z){if(!n){z.preventDefault();return}return c?.(!1)},D=function(){return c?.(!1),$(!1),U()},l.addEventListener("cancel",w),l.addEventListener("close",D),l.__ariaBindDialog=[w,D],f&&!l.open){if(!R)R=u();$(!0);try{l.showModal()}catch{}}else if(!f&&l.open)l.close();else $(!!f);return function(){return l.removeEventListener("cancel",w),l.removeEventListener("close",D),l.__ariaBindDialog?.[0]===w?l.__ariaBindDialog=null:void 0}};j3=function(f,_,c="vertical"){let n,u;if(f.isComposing)return;return u=c!=="horizontal",n=c!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?R1(f,_.next):void 0;case"ArrowUp":return u?R1(f,_.prev):void 0;case"ArrowRight":return n?R1(f,_.next):void 0;case"ArrowLeft":return n?R1(f,_.prev):void 0;case"Home":case"PageUp":return R1(f,_.first);case"End":case"PageDown":return R1(f,_.last);case"Enter":case" ":return R1(f,_.select);case"Escape":return R1(f,_.dismiss);default:return f.key.length===1?_.char?.(f.key):void 0}})()};C3=function(f,_,c=4,n=!0){let u,l;if(!(f&&_))return;if(l=f.getBoundingClientRect(),_.style.position="fixed",_.style.left=`${l.left}px`,_.style.top=`${l.bottom+c}px`,_.style.minWidth=`${l.width}px`,u=_.getBoundingClientRect(),u.bottom>window.innerHeight)_.style.top=`${l.top-u.height-c}px`;if(u.right>window.innerWidth)_.style.left=`${window.innerWidth-u.width-c}px`;return n?_.style.visibility="visible":void 0};var O0='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';m3=function(f){let _;return _=function(c){let n,u,l;if(c.key!=="Tab")return;if(l=Array.from(f.querySelectorAll(O0)).filter(function(i){return i.offsetParent!==null}),!l.length)return;return n=l[0],u=l[l.length-1],c.shiftKey?document.activeElement===n?(c.preventDefault(),u.focus()):void 0:document.activeElement===u?(c.preventDefault(),n.focus()):void 0},f.addEventListener("keydown",_),function(){return f.removeEventListener("keydown",_)}};g3=function(f,_){let c,n;if(!f)return;if(n=f.querySelector("h1,h2,h3,h4,h5,h6"),n)n.id??=`${_}-title`,f.setAttribute("aria-labelledby",n.id);if(c=f.querySelector("p"),c)return c.id??=`${_}-desc`,f.setAttribute("aria-describedby",c.id)};C1=[];B3=function(f){let _;if(_=window.scrollY,C1.push({instance:f,scrollY:_}),C1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${_}px`,document.body.style.width="100%"};V3=function(f){let _,c;if(_=C1.findIndex(function(n){return n.instance===f}),_<0)return;if({scrollY:c}=C1.splice(_,1)[0],!C1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,c)};$2=!1;u2=!1;r2=function(){let f,_,c;if($2)return u2;if(!(typeof document<"u"&&document.body))return!1;return(()=>{try{return f=document.createElement("div"),_=document.createElement("div"),f.style.cssText="position:fixed;top:100px;left:100px;width:10px;height:10px;anchor-name:--probe",_.style.cssText="position:fixed;inset:auto;margin:0;position-anchor:--probe;position-area:bottom start;width:10px;height:10px",document.body.appendChild(f),document.body.appendChild(_),c=_.getBoundingClientRect(),f.remove(),_.remove(),u2=c.top>50,$2=!0,u2}catch{return $2=!0,u2=!1}})()};P3=["position","inset","top","right","bottom","left","margin","marginTop","marginRight","marginBottom","marginLeft","transform","minWidth","positionAnchor","positionArea","positionTry","positionVisibility"];r3=function(f){let _,c=[];for(let n of P3)c.push(f.style[n]="");return c};L3=function(f,_,c={}){let n,u,l,i,w,D,h,A;if(!(f&&_))return;if(w=c.placement??"bottom start",i=c.offset??4,u=c.matchWidth??!1,r3(_),r2()){if(l=`--anchor-${_.id||Math.random().toString(36).slice(2,8)}`,D=_.__ariaPrevTrigger,D&&D!==f)try{D.style.anchorName=""}catch{}switch(_.__ariaPrevTrigger=f,f.style.anchorName=l,_.style.positionAnchor=l,_.style.position="fixed",_.style.inset="auto",_.style.margin="0",_.style.positionArea=w,_.style.positionTry="flip-block, flip-inline, flip-block flip-inline",_.style.positionVisibility="anchors-visible",[A]=w.split(" "),A){case"bottom":_.style.marginTop=`${i}px`;break;case"top":_.style.marginBottom=`${i}px`;break;case"left":_.style.marginRight=`${i}px`;break;case"right":_.style.marginLeft=`${i}px`;break}return u?_.style.minWidth="anchor-size(width)":void 0}else{switch(h=f.getBoundingClientRect(),_.style.position="fixed",_.style.inset="auto",_.style.margin="0",[A,n]=w.split(" "),n??="start",A){case"bottom":_.style.top=`${h.bottom+i}px`;break;case"top":_.style.bottom=`${window.innerHeight-h.top+i}px`;break;case"left":_.style.right=`${window.innerWidth-h.left+i}px`;break;case"right":_.style.left=`${h.right+i}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes(A):(A in["bottom","top"]))switch(n){case"start":_.style.left=`${h.left}px`;break;case"center":_.style.left=`${h.left+h.width/2}px`,_.style.transform="translateX(-50%)";break;case"end":_.style.right=`${window.innerWidth-h.right}px`;break}else switch(n){case"start":_.style.top=`${h.top}px`;break;case"center":_.style.top=`${h.top+h.height/2}px`,_.style.transform="translateY(-50%)";break;case"end":_.style.bottom=`${window.innerHeight-h.bottom}px`;break}return u?_.style.minWidth=`${h.width}px`:void 0}};N3=function(...f){return function(){let _,c=[];for(let n of f)c.push((()=>{try{return n?.()}catch{return null}})());return c}};globalThis.__aria??={listNav:I3,rovingNav:j3,popupDismiss:T3,popupGuard:a3,bindPopover:E3,bindDialog:b3,positionBelow:C3,trapFocus:m3,wireAria:g3,lockScroll:B3,unlockScroll:V3,position:L3,hasAnchor:r2,combine:N3};globalThis.ARIA??=globalThis.__aria;E1.modules["app.rip"]=z2;for(let[f,_]of Object.entries(z2))if(typeof _==="function")globalThis[f]=_;})();
|
|
2935
|
+
`:"",e=l.slice(0,n).join(`
|
|
2936
|
+
`)}let i=new W1,a;try{a=i.tokenize(e)}catch(w){throw t2(w,e,this.options.filename)}if(this.options.showTokens)a.forEach((w)=>console.log(`${w[0].padEnd(12)} ${JSON.stringify(w[1])}`)),console.log();let r=null,f=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)f=[...a];if(a=a.filter((w)=>w[0]!=="TYPE_DECL"),i.typeRefNames?.size>0&&!this.options.inlineTypes){let w=new Set,b=!1;for(let A of a){if(A[0]==="IMPORT"){b=!0;continue}if(b&&A[0]==="TERMINATOR"){b=!1;continue}if(b)continue;if(A[0]==="IDENTIFIER")w.add(A[1])}let D=(A)=>!w.has(A);for(let A=a.length-1;A>=0;A--){if(a[A][0]!=="IMPORT")continue;let d=A+1;if(d>=a.length)continue;if(a[d][0]==="CALL_START"||a[d][0]==="(")continue;if(a[d][0]==="STRING")continue;let R=-1,E=d;while(E<a.length&&a[E][0]!=="TERMINATOR"){if(R===-1&&a[E][0]==="FROM")R=E;E++}if(R===-1)continue;let O=-1,U=-1;for(let W=A+1;W<R;W++)if(a[W][0]==="{"){O=W;break}if(O!==-1){for(let W=O+1;W<R;W++)if(a[W][0]==="}"){U=W;break}}let $=!1,S=O!==-1?O:R;for(let W=A+1;W<S;W++){let e1=a[W][0];if(e1==="IDENTIFIER"||e1==="*"){$=!0;break}}if(O===-1||U===-1){if($){let W=[],e1=A+1;while(e1<R)if(a[e1][0]==="AS"&&e1+1<R&&a[e1+1][0]==="IDENTIFIER")W.push(a[e1+1][1]),e1+=2;else if(a[e1][0]==="IDENTIFIER")W.push(a[e1][1]),e1++;else e1++;if(W.length===0||!W.every(D))continue;let N=E<a.length?E+1:E;a.splice(A,N-A)}continue}let g=[],q=O+1;while(q<U){let W=q;while(W<U&&a[W][0]!==",")W++;if(W>q)g.push({start:q,end:W});q=W+1}for(let W of g){let e1=null;for(let N=W.start;N<W.end;N++){if(a[N][0]!=="IDENTIFIER")continue;if(e1===null)e1=a[N][1];else if(a[N-1]?.[0]==="AS")e1=a[N][1]}W.local=e1,W.drop=e1!=null&&D(e1)}if(!g.some((W)=>W.drop))continue;let B=g.every((W)=>W.drop),L=[];if(B&&$){let W=A+1;while(W<O)if(a[W][0]==="AS"&&W+1<O&&a[W+1][0]==="IDENTIFIER")L.push(a[W+1][1]),W+=2;else if(a[W][0]==="IDENTIFIER")L.push(a[W][1]),W++;else W++}if(B)if(!$){let W=E<a.length?E+1:E;a.splice(A,W-A)}else if(L.length>0&&L.every(D)){let W=E<a.length?E+1:E;a.splice(A,W-A)}else{let W=O,e1=U+1,N=O-1;while(N>A&&a[N][0]!==","&&a[N][0]!=="IDENTIFIER"&&a[N][0]!=="*")N--;if(N>A&&a[N][0]===",")W=N;a.splice(W,e1-W)}else for(let W=g.length-1;W>=0;W--){let e1=g[W];if(!e1.drop)continue;let{start:N,end:o1}=e1;if(o1<U&&a[o1][0]===",")o1++;else if(N>O+1&&a[N-1][0]===",")N--;a.splice(N,o1-N)}}}while(a.length>0&&a[0][0]==="TERMINATOR")a.shift();if(a.every((w)=>w[0]==="TERMINATOR")){if(f&&N2)r=N2(f,["program"],e);return{tokens:a,sexpr:["program"],code:"",dts:r,data:t,reactiveVars:{},gates:[]}}let s=null;g1.lexer={tokens:a,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let w=this.tokens[this.pos++],b=w[1];if(w.data)b=new String(b),Object.assign(b,w.data);return this.text=b,this.loc=w.loc,this.line=w.loc?.r,s=w.loc,w[0]}};let c;try{c=g1.parse(e)}catch(w){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(e)||/\?\s+\w+\s+\?\s+/.test(e))throw new d1("Nested ternary operators are not supported",{code:"E_PARSE",source:e,file:this.options.filename,suggestion:"Use if/else statements instead.",phase:"parser"});let b=t2(w,e,this.options.filename);if(b.phase==="parser"&&s)b.line=s.r??b.line,b.column=s.c??b.column,b.length=s.n||1;throw b}if(this.options.showSExpr)console.log(K1(c,0,!0)),console.log();let h=null;if(this.options.sourceMap){let w=(this.options.filename||"output")+".js",b=this.options.filename||"input.rip";h=new u3(w,b,e)}let o=new A1({dataSection:t,source:e,filename:this.options.filename,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,skipImports:this.options.skipImports,skipDataPart:this.options.skipDataPart,stubComponents:this.options.stubComponents,reactiveVars:this.options.reactiveVars,inlineTypes:this.options.inlineTypes,schemaMode:this.options.schemaMode,foldProjections:this.options.foldProjections,sourceMap:h}),_=o.compile(c),m=h?h.toJSON():null,y=h?h.toReverseMap():null;if(m&&this.options.sourceMap==="inline"){let w;if(typeof Buffer<"u")w=Buffer.from(m,"utf8").toString("base64");else{let b=new TextEncoder().encode(m),D="";for(let A=0;A<b.length;A++)D+=String.fromCharCode(b[A]);w=btoa(D)}_+=`
|
|
2937
|
+
//# sourceMappingURL=data:application/json;base64,${w}`}else if(m&&this.options.filename)_+=`
|
|
2938
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(f&&N2)r=N2(f,c,e,o._schemaBehavior,o._schemaAnon);return{tokens:a,sexpr:c,code:_,dts:r,map:m,reverseMap:y,data:t,reactiveVars:o.reactiveVars,gates:o._gateDecls||[]}}compileToJS(e){return this.compile(e).code}compileToSExpr(e){return this.compile(e).sexpr}}_4(A1,W1);A1.prototype.emitEnum=function(u,t,l){let[n,i]=t,a=n?.valueOf?.()??n,r=[];if(Array.isArray(i)){let c=i[0]==="block"?i.slice(1):[i];for(let h of c)if(Array.isArray(h)){if(h[0]?.valueOf?.()==="="){let o=h[1]?.valueOf?.()??h[1],_=h[2]?.valueOf?.()??h[2];r.push([o,_])}}}if(r.length===0)return`const ${a} = {}`;let f=r.map(([c,h])=>`${c}: ${h}`).join(", "),s=r.map(([c,h])=>`${h}: "${c}"`).join(", ");return`const ${a} = {${f}, ${s}}`};S2(null,A1);function H2(e,u={}){return new w2(u).compile(e)}function Q1(e,u={}){return new w2(u).compileToJS(e)}function m2(){return new A1({}).getReactiveRuntime()}function y2(){return new A1({}).getComponentRuntime()}var m4="3.16.1",y4="2026-06-19@18:03:41GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(m2())();if(!globalThis.__ripComponent)Function(y2())()}var R6=(e)=>{let u=e.match(/^[ \t]*(?=\S)/gm),t=Math.min(...(u||[]).map((l)=>l.length));return e.replace(RegExp(`^[ ]{${t}}`,"gm"),"").trim()},a3=(e)=>String(e).replace(/[\r\n]/g,"").replace(/\s+$/g,"");function l3(e){let u=/^(\s*)import\s+([^'"]+?)\s+from\s+['"](@rip-lang\/[^'"]+)['"];?\s*$/gm;return e.replace(u,(t,l,n,i)=>{let a=n.trim();if(a.startsWith("type "))return`${l}// type-only import erased: ${i}`;let r=a.indexOf("{"),f=a.lastIndexOf("}");if(r<0||f<=r)return console.warn(`[Rip] Skipping non-named import from ${i}; only \`import { … } from '@rip-lang/*'\` is supported in browser bundles.`),t;let s=a.slice(r+1,f),c=[];for(let h of s.split(",")){let o=h.trim().replace(/^type\s+/,"");if(!o)continue;if(/\s+as\s+/.test(o)){let[_,m]=o.split(/\s+as\s+/).map((y)=>y.trim());c.push(`${_}: ${m}`)}else c.push(o)}if(c.length===0)return`${l}// import erased: ${i}`;return`${l}const { ${c.join(", ")} } = globalThis;`})}function A4(e,u){let l=`//# sourceURL=${a3(u)}`,n=/\n?\/\/# sourceMappingURL=[^\n]*\s*$/,i=e.match(n);if(i)return e.slice(0,i.index)+`
|
|
2939
|
+
`+l+e.slice(i.index);return e+`
|
|
2940
|
+
`+l}function d4(e,u){if(!u)return e;return e.replace(/\/\/# sourceMappingURL=data:application\/json;base64,([A-Za-z0-9+/=]+)/,(t,l)=>{let n;try{let f=atob(l),s=new Uint8Array(f.length);for(let c=0;c<f.length;c++)s[c]=f.charCodeAt(c);n=new TextDecoder().decode(s)}catch{return t}let i;try{i=JSON.parse(n)}catch{return t}i.mappings=";".repeat(u)+i.mappings;let a=new TextEncoder().encode(JSON.stringify(i)),r="";for(let f=0;f<a.length;f++)r+=String.fromCharCode(a[f]);return`//# sourceMappingURL=data:application/json;base64,${btoa(r)}`})}function D6(e,u){let t=`${a3(u)}.js`,l=d4(e,1);return`(async()=>{
|
|
2941
|
+
${A4(l,t)}
|
|
2942
|
+
})()`}if(typeof globalThis<"u")globalThis.__ripDebug={enabled:!0,offsetSourceMap:d4,addSourceURL:A4,sanitizeSourceURL:a3};async function b4(){let e=[],u,t=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),l=t?.getAttribute("data-src");if(l!==null&&l!==void 0){for(let a of l.trim().split(/\s+/))if(a)e.push({url:a})}else if(t&&/^https?:$/.test(location.protocol))e.push({url:"/app",optional:!0});for(let a of document.querySelectorAll('script[type="text/rip"]'))if(a.src)e.push({url:a.src});else{let r=R6(a.textContent);if(r)e.push({code:r})}if(e.length>0){let a=await Promise.allSettled(e.map(async(o)=>{if(!o.url)return;let _=await fetch(o.url);if(!_.ok)throw Error(`${o.url} (${_.status})`);if(o.url.endsWith(".rip"))o.code=await _.text();else{let m=await _.json();o.bundle=m}}));for(let o=0;o<a.length;o++){let _=a[o];if(_.status==="rejected"&&!e[o].optional)console.warn("Rip: fetch failed:",_.reason.message)}let r=[],f=[];for(let o of e)if(o.bundle)r.push(o.bundle);else if(o.code)f.push(o);let s=t?.getAttribute("data-router");u=r[r.length-1];let c,h;if(s!=null)c=s!=="false",h=s==="hash";else c=!!u?.data?.router,h=!1;if(c&&r.length>0){let o=t?.getAttribute("data-debug")!=="false";if(globalThis.__ripDebug)globalThis.__ripDebug.enabled=o;let _={skipRuntimes:!0,skipExports:!0,skipImports:!0},m=0;for(let w of f){let b=w.url||`inline-${++m}.rip`,D=o?{..._,sourceMap:"inline",filename:b}:_,A;try{A=l3(Q1(w.code,D))}catch(d){console.error(x1(d,{source:w.code,file:b,color:!1}));continue}try{await(0,eval)(o?D6(A,b):`(async()=>{
|
|
2943
|
+
${A}
|
|
2944
|
+
})()`)}catch(d){console.error(`Rip runtime error in ${b}:`,d)}}let y=k1.modules?.["app.rip"];if(y?.launch){let w=t.getAttribute("data-persist"),b={bundle:u,hash:h};if(w!=null)b.persist=w==="local"?"local":!0;await y.launch(b)}}else{let o=[];for(let b of r){let D=b.modules||b.components||{};for(let[A,d]of Object.entries(D))o.push({code:d,url:A});if(b.data){let A=t?.getAttribute("data-state"),d={};if(A)try{d=JSON.parse(A)}catch{}Object.assign(d,b.data),t?.setAttribute("data-state",JSON.stringify(d))}}if(o.push(...f),r.length>0&&typeof globalThis.createComponents==="function"){let b=globalThis.createComponents();for(let D of r){let A=D.modules||D.components;if(A)b.load(A)}if(typeof window<"u"){if(!window.__RIP__)window.__RIP__={};window.__RIP__.components=b}}let _=t?.getAttribute("data-debug")!=="false";if(globalThis.__ripDebug)globalThis.__ripDebug.enabled=_;let m={skipRuntimes:!0,skipExports:!0,skipImports:!0},y=[],w=0;for(let b of o){if(!b.code)continue;let D=b.url||`inline-${++w}.rip`,A=_?{...m,sourceMap:"inline",filename:D}:m;try{let d=l3(Q1(b.code,A));y.push({js:d,url:D})}catch(d){console.error(x1(d,{source:b.code,file:D,color:!1}))}}if(!globalThis.__ripApp&&t){let b=globalThis.createStash;if(b){let D={},A=t.getAttribute("data-state");if(A)try{D=JSON.parse(A)}catch(E){console.error("Rip: invalid data-state JSON:",E.message)}let d=b({data:D});if(globalThis.__ripApp=d,typeof window<"u")window.app=d;let R=t.getAttribute("data-persist");if(R!=null&&globalThis.persistStash)globalThis.persistStash(d,{local:R==="local"})}}if(y.length>0){let b=t?.getAttribute("data-mount"),D=t?.getAttribute("data-target")||"body",A=b?`
|
|
2945
|
+
${b}.mount(${JSON.stringify(D)});
|
|
2946
|
+
`:"",d=w4(y.map((O)=>({js:O.js}))),R=b?d.replace(/(\n\/\/# sourceMappingURL=[^\n]*\n?)?$/,A+"$1"):d,E=!0;try{await(0,eval)(`(async()=>{
|
|
2947
|
+
${R}
|
|
2948
|
+
})()`)}catch(O){if(E=!1,O instanceof SyntaxError)console.error(`Rip syntax error: ${O.message}`);else console.error("Rip runtime error:",O)}if(E)document.body.classList.add("ready")}}}let n=t?.getAttribute("data-reload");if((n!=null?n!=="false":!!u?.data?.watch)&&!globalThis.__ripLaunched){let a=!1,r=1000,f=30000,s=()=>{let c=new EventSource("/watch");c.addEventListener("connected",()=>{if(r=1000,a)location.reload();a=!0}),c.addEventListener("reload",(h)=>{if(h.data==="styles"){let o=Date.now(),_=0;if(document.querySelectorAll('link[rel="stylesheet"]').forEach((m)=>{if(new URL(m.href).origin!==location.origin)return;let y=new URL(m.href);y.searchParams.set("_r",o),m.href=y.toString(),_++}),!_)location.reload()}else location.reload()}),c.onerror=()=>{c.close(),setTimeout(s,r),r=Math.min(r*2,f)}};s()}}async function k1(e){for(let[a,r]of Object.entries(k1.modules))if(e.includes(a))return r;let u=await fetch(e).then((a)=>{if(!a.ok)throw Error(`importRip: ${e} (${a.status})`);return a.text()}),t=l3(Q1(u)),l=`// ${e}
|
|
2949
|
+
`,n=new Blob([l+t],{type:"application/javascript"});return await import(URL.createObjectURL(n))}k1.modules={};function R4(e){try{let u=e.replace(/^/gm," "),l=Q1(`do ->
|
|
2950
|
+
${u}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");l=l.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let n=(0,eval)(l);if(n&&typeof n.then==="function")return n.then((i)=>{if(i!==void 0)globalThis._=i;return i});if(n!==void 0)globalThis._=n;return n}catch(u){console.error(x1(u,{source:e,color:!1}));return}}if(typeof globalThis<"u")globalThis.rip=R4,globalThis.importRip=k1,globalThis.compileToJS=Q1,globalThis.__ripExports={compile:H2,compileToJS:Q1,formatSExpr:K1,getStdlibCode:u2,VERSION:m4,BUILD_DATE:y4,getReactiveRuntime:m2,getComponentRuntime:y2};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((e)=>{let u=()=>b4().then(e);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(u));else queueMicrotask(u)});var J2={};g3(J2,{unwrapStash:()=>O1,throttle:()=>$6,source:()=>q6,setContext:()=>E6,persistStash:()=>e5,launch:()=>z6,hold:()=>N6,hasContext:()=>M6,getContext:()=>S6,delay:()=>n5,debounce:()=>F6,createStash:()=>k4,createRouter:()=>u5,createResource:()=>O6,createRenderer:()=>t5,createMutation:()=>g6,createComponents:()=>i5});var d3,D4,r3,E4,Q2,S4,b3,Y2,G2,M4,O4,U4,P2,q4,X1,T2,h1,K2,A2,g4,F4,$4,R3,N4,z4,r2,D1,H4,K4,I4,W4,Q4,P4,Y4,G4,T4,c2,E1,s3,I2,R2,f3,J4,D2,l2,c3,o2,Z4,W2,Z1,X4,o3,B4,v4,h3,d2,_3,D3,C4,w3,S1,s2,T1,E3,S3,L4,m3,p4,f2,j4,y3,b2,V4,e2,x4,a2,J1,A3;globalThis.abort??=(e)=>{if(e)console.error(e);process.exit(1)};globalThis.assert??=(e,u)=>{if(!e)throw Error(u||"Assertion failed")};globalThis.exit??=(e)=>process.exit(e||0);globalThis.kind??=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(e)=>{return console.dir(e,{depth:null,colors:!0}),e};globalThis.pj??=(e)=>{return console.log(JSON.stringify(e,null,2)),e};globalThis.pr??=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,u=(i,a)=>i.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),t=(i)=>!i.includes("'")?"'"+u(i,"'")+"'":!i.includes('"')?'"'+u(i,'"').split("#{").join("\\#{")+'"':"'"+u(i,"'")+"'",l=(i)=>{if(typeof i==="symbol"){let a=Symbol.keyFor(i);return a&&e.test(a)?":"+a:t(String(i))}return e.test(i)?i:t(i)},n=(i,a)=>{if(i===null)return"null";if(i===void 0)return"undefined";let r=typeof i;if(r==="number"||r==="boolean")return String(i);if(r==="string")return t(i);if(r==="symbol"){let f=Symbol.keyFor(i);return f&&e.test(f)?":"+f:null}if(Array.isArray(i)){if(i.length===0)return"[]";let f=" ".repeat(a+1),s=" ".repeat(a);return`[
|
|
2951
|
+
`+f+i.map((c)=>n(c,a+1)??"null").join(`
|
|
2952
|
+
`+f)+`
|
|
2953
|
+
`+s+"]"}if(r==="object"){let f=Object.getPrototypeOf(i);if(f!==Object.prototype&&f!==null)return null;let s=Object.keys(i);if(s.length===0)return"{}";let c=" ".repeat(a+1),h=" ".repeat(a);return`{
|
|
2954
|
+
`+c+s.map((o)=>l(o)+": "+(n(i[o],a+1)??"null")).join(`
|
|
2955
|
+
`+c)+`
|
|
2956
|
+
`+h+"}"}return null};return(i)=>{let a=n(i,0);return a!==null?console.log(a):console.dir(i,{depth:null,colors:!0}),i}})();globalThis.raise??=(e,u)=>{throw u!==void 0?new e(u):Error(e)};globalThis.rand??=(e,u)=>u!==void 0?(e>u&&([e,u]=[u,e]),Math.floor(Math.random()*(u-e+1)+e)):e?Math.floor(Math.random()*e):Math.random();globalThis.sleep??=(e)=>new Promise((u)=>setTimeout(u,e));globalThis.todo??=(e)=>{throw Error(e||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...e)=>e[0].map((u,t)=>e.map((l)=>l[t]));({__state:h1,__computed:q4,__effect:X1,__batch:P2}=globalThis.__rip);T2=globalThis.__ripComponent||{};var E6=function(e,u){return T2.setContext(e,u)},S6=function(e){return T2.getContext(e)},M6=function(e){return T2.hasContext(e)};o2=function(e){if(typeof window>"u"||typeof document>"u")throw Error(`Rip App: '${e}' requires a browser environment`)};b3=new WeakMap;r3=new WeakMap;Y2=Symbol.for("rip.source");G2=Symbol.for("rip.source.family");d3=Symbol.for("rip.defaults");Q2=Symbol.for("rip.persist");S1=function(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[Y2]===!0||e[G2]===!0)};s2=function(e){return e!=null&&typeof e==="function"&&e[G2]===!0};I2=0;l2=h1(0);E1=0;w3=function(e){return typeof e==="string"&&(e.indexOf(".")!==-1||e.indexOf("/")!==-1||e.indexOf("[")!==-1)};C4=function(e){return/^-?\d+$/.test(e)};D3=function(e,u){let t;if(!e[Symbol.for("signals")])Object.defineProperty(e,Symbol.for("signals"),{value:new Map,enumerable:!1});if(t=e[Symbol.for("signals")].get(u),!t)t=h1(e[u]),e[Symbol.for("signals")].set(u,t);return t};T1=function(e){return D3(e,Symbol.for("keys"))};A3=function(e){let u;if(!(e!=null&&typeof e==="object"))return e;if(e[Symbol.for("stash")])return e;if(e[Y2])return e;if(e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof Promise)return e;if(u=b3.get(e),u)return u;return E3(e)};E3=function(e){let u,t;return t=null,u={get(l,n){let i,a,r,f,s;if(n===Symbol.for("stash"))return!0;if(n===Symbol.for("raw"))return l;if(typeof n==="symbol")return Reflect.get(l,n);if(n==="length"&&Array.isArray(l))return T1(l).value,l.length;if(!E1&&w3(n))return e2(t,n);if(i=x4(t,n),i)return i;if(a=l[n],S1(a)){if(typeof a==="function")return a;return f=a.read(),f!=null&&typeof f==="object"?A3(f):f}if(r=D3(l,n),s=r.value,s!=null&&typeof s==="object")return A3(s);return s},set(l,n,i){let a,r,f,s,c;if(!E1&&w3(n))return a2(t,n,i),!0;if(Array.isArray(l)&&n==="length"){if(f=l.length,a=+i,l.length=a,a!==f){if(l[Symbol.for("signals")]){for(let h of((o,_)=>Array.from({length:Math.max(0,Math.abs(_-o))},(m,y)=>o+y*(o<=_?1:-1)))(Math.min(f,a),Math.max(f,a)))if(c=l[Symbol.for("signals")].get(String(h)),c!=null)c.value=l[h]}T1(l).value=++I2,l2.value++}return!0}if(r=l[n],S1(r)&&!S1(i)){if(s2(r))throw Error(`Rip App: cannot assign a value to keyed source '${String(n)}' — use source('${String(n)}', key) and set .value`);return r.write(i?.[Symbol.for("raw")]?i[Symbol.for("raw")]:i),l2.value++,!0}if(s=i?.[Symbol.for("raw")]?i[Symbol.for("raw")]:i,s===r)return!0;if(l[n]=s,l[Symbol.for("signals")]?.has(n))l[Symbol.for("signals")].get(n).value=s;if(r===void 0&&s!==void 0)T1(l).value=++I2;return l2.value++,!0},deleteProperty(l,n){let i;if(delete l[n],i=l[Symbol.for("signals")]?.get(n),i!=null)i.value=void 0;return T1(l).value=++I2,l2.value++,!0},ownKeys(l){return T1(l).value,Reflect.ownKeys(l)}},t=new Proxy(e,u),b3.set(e,t),t};E4=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;J1=function(e){let u,t,l,n,i;l=("."+e).split(E4),l.shift(),i=[],t=0;while(t<l.length){if(n=l[t],u=n[0],u==="."||u==="/")i.push(n.slice(1));else if(u==="[")if(n[1]==='"'||n[1]==="'")i.push(n.slice(2,-2));else i.push(+n.slice(1,-1));t+=2}return i};f2=function(e,u){let t;if(typeof e==="number"&&e<0){if(t=O1(u),Array.isArray(t))return t.length+e}return e};e2=function(e,u){let t,l;return l=J1(u),t=e,E1++,(()=>{try{for(let n of l){if(t==null)return;t=t[f2(n,t)]}return t}finally{E1--}})()};a2=function(e,u,t){let l,n,i,a;return a=J1(u),i=e,E1++,(()=>{try{for(let r=0;r<a.length;r++){let f=a[r];if(l=f2(f,i),r===a.length-1)i[l]=t;else{if(i[l]==null)n=a[r+1],i[l]=typeof n==="number"||C4(n)?[]:{};i=i[l]}}return t}finally{E1--}})()};O4={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0};b2=function(e){let u;if(!(e!=null&&typeof e==="object"))return e;if(e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof Promise)return e;if(Array.isArray(e))return(()=>{let t=[];for(let l of e)t.push(b2(l));return t})();u={};for(let t in e){if(!Object.hasOwn(e,t))continue;let l=e[t];if(S1(l))continue;u[t]=b2(l)}return u};V4=function(e){if(!(e!=null&&typeof e==="object"))return;Object.defineProperty(e,d3,{value:b2(e),configurable:!0});return};x4=function(e,u){let t,l;if(!O4[u])return;if(t=r3.get(e),!t)t={},r3.set(e,t);if(t[u])return t[u];return l=(()=>{switch(u){case"inc":return function(n,i=1){let a;return a=e2(e,n)??0,a2(e,n,a+i)};case"dec":return function(n,i=1){let a;return a=e2(e,n)??0,a2(e,n,a-i)};case"flip":return function(n){let i;return i=e2(e,n)??!1,a2(e,n,!i)};case"join":return function(n,i){return P2(function(){let a;if(a=e2(e,n),!(a!=null&&typeof a==="object"))a2(e,n,{}),a=e2(e,n);return E1++,(()=>{try{return(()=>{let r=[];for(let f in i){let s=i[f];r.push(a[f]=s)}return r})()}finally{E1--}})()})};case"keys":return function(n){let i,a,r;return E1++,(()=>{try{a=J1(n),i=e;for(let f of a){if(i==null)return[];i=i[f2(f,i)]}if(!(i!=null&&typeof i==="object"))return[];return r=O1(i),T1(r).value,Object.keys(r)}finally{E1--}})()};case"has":return function(n){let i,a,r,f;return E1++,(()=>{try{if(r=J1(n),!(r.length>0))return!1;a=e;for(let s=0;s<r.length;s++){let c=r[s];if(i=f2(c,a),s===r.length-1)return f=O1(a),T1(f).value,Object.prototype.hasOwnProperty.call(f,i);if(a==null)return!1;a=a[i]}return!1}finally{E1--}})()};case"del":return function(n){let i,a,r;return E1++,(()=>{try{if(r=J1(n),!(r.length>0))return;return a=e,(()=>{let f=[];for(let s=0;s<r.length;s++){let c=r[s];if(i=f2(c,a),s===r.length-1){delete a[i];return}if(a==null)return;f.push(a=a[i])}return f})()}finally{E1--}})()};case"reset":return function(){P2(function(){let n,i;i=O1(e),n=i[d3];for(let a in i){if(!Object.hasOwn(i,a))continue;let r=i[a];if(S1(r))r.reset();else if(n)if(Object.prototype.hasOwnProperty.call(n,a))e[a]=b2(n[a]);else delete e[a]}return i[Q2]?.()});return};case"source":return function(n,i){let a,r,f;a=null,f=O1(e);for(let s of J1(n)){if(!(f!=null&&typeof f==="object"))break;if(f=f[s],S1(f)){a=f;break}}if(!a)throw Error(`Rip App: source('${n}') does not resolve to a source key — declare it with source() in app/stash.rip`);if(s2(a)){if(i==null)throw Error(`Rip App: keyed source('${n}') requires a key — source('${n}', key)`);a=a.cellFor(i)}else if(i!=null)throw Error(`Rip App: source('${n}') is not keyed — drop the key argument`);return r={refetch:a.refetch,reset:a.reset},Object.defineProperty(r,"value",{get(){return a.read()},set(s){return a.write(s)}}),Object.defineProperty(r,"loading",{get(){return a.loading}}),Object.defineProperty(r,"error",{get(){return a.error}}),r};case"peek":return function(n){let i,a;if(a=O1(e),n==null)return a;for(let r of J1(n)){if(a==null)return;if(S1(a)){if(s2(a))return;if(a=a.peek(),a==null)return}i=typeof r==="number"&&r<0&&Array.isArray(a)?a.length+r:r,a=a[i]}return S1(a)?s2(a)?void 0:a.peek():a}}})(),t[u]=l,l};function k4(e={}){return E3(e)}function O1(e){return e?.[Symbol.for("raw")]?e[Symbol.for("raw")]:e}J4=function(e,u){return S1(u)?void 0:u};s3=function(e){if(!(e!=null&&typeof e==="object"))return!1;for(let u in e){if(!Object.hasOwn(e,u))continue;let t=e[u];if(t==null)continue;if(S1(t))return!0;if(typeof t==="object"&&s3(t))return!0}return!1};f3=function(e,u){let t,l;l=O1(e);for(let n in u){let i=u[n];if(t=l[n],S1(t))continue;if(i!=null&&t!=null&&typeof i==="object"&&!Array.isArray(i)&&typeof t==="object"&&!Array.isArray(t)&&s3(t))f3(e[n],i);else e[n]=i}return};function e5(e,u={}){let t,l,n,i,a,r,f,s,c;if(o2("persistStash"),c=O1(e)||e,c[Symbol.for("persisted")])return function(){return null};c[Symbol.for("persisted")]=!0,f=u.local?localStorage:sessionStorage,s=u.key||"__rip_app";try{if(a=f.getItem(s),a)r=JSON.parse(a),f3(e.data,r)}catch{}if(t=function(){return(()=>{try{return f.setItem(s,JSON.stringify(O1(e.data),J4))}catch{return null}})()},i=X1(function(){let h;return l2.value,h=setTimeout(t,2000),function(){return clearTimeout(h)}}),window.addEventListener("beforeunload",t),l=O1(e.data),l!=null&&typeof l==="object")Object.defineProperty(l,Q2,{value(){return(()=>{try{return f.removeItem(s)}catch{return null}})()},configurable:!0,writable:!0});return n=!1,function(){if(n)return;if(n=!0,i?.(),window.removeEventListener("beforeunload",t),t(),l!=null&&typeof l==="object")l[Q2]=null;return c[Symbol.for("persisted")]=!1}}function O6(e,u={}){let t,l,n,i,a,r,f,s;if(t=h1(u.initial??null),n=h1(!1),l=h1(null),r=0,i=null,f=async function(){let c,h;return i?.abort(),i=typeof AbortController<"u"?new AbortController:null,c=++r,n.value=!0,l.value=null,await(async()=>{try{if(h=await e(i?.signal),c!==r)return;return t.value=h,h}catch(o){if(c!==r)return;if(o?.name==="AbortError")return;throw l.value=o,o}finally{if(c===r)n.value=!1}})()},a=function(){return r++,i?.abort(),i=null,n.value=!1,l.value=null},s={data:void 0,loading:void 0,error:void 0,refetch:f,dispose:a},Object.defineProperty(s,"data",{get(){return t.value}}),Object.defineProperty(s,"loading",{get(){return n.value}}),Object.defineProperty(s,"error",{get(){return l.value}}),!u.lazy)f().catch(function(){return null});return s}D4=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/i;function U6(e){let u,t,l;if(e==null)return 0;if(typeof e==="number")return e;if(typeof e==="string"){if(e==="forever")return 1/0;if(l=e.match(D4),l)return t=parseFloat(l[1]),(()=>{switch(l[2][0].toLowerCase()){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000;default:return t*1000}})();if(/^\d+$/.test(e))return parseInt(e,10)}return u=typeof e==="symbol"?String(e):JSON.stringify(e),console.warn(`[Rip] source: unrecognized staleTime ${u} — treating as 0 (use e.g. '5 min', '2 hours', a number of ms, or 'forever')`),0}S4=30000;S3=function(e,u){let t,l,n,i,a,r,f,s,c,h,o,_;return t=h1(null),n=h1(!1),l=h1(null),f=0,a=null,s=null,o=0,r=0,h=async function(m,y){let w,b;if(a?.abort(),a=typeof AbortController<"u"?new AbortController:null,w=++f,!m)n.value=!0;return await(async()=>{try{if(b=await e(a?.signal),w!==f)return b;return l.value=null,t.value=b,o=Date.now(),r=y?o+S4:0,b}catch(D){if(w!==f)return;if(D?.name==="AbortError")return;if(l.value=D,t.read()==null)throw o=0,D;return}finally{if(w===f)n.value=!1,s=null}})()},_=function(m,y){let w;return w=h(m,y),s=w,w},c=function(){return u===1/0||Date.now()-o<u||Date.now()<r},i={},i[Y2]=!0,i.read=function(){let m;if(m=t.value,m==null&&!s&&o===0)_(!1).catch(function(){return null});return m},i.peek=function(){return t.read()},i.ensure=function(){let m,y;if(y=t.read(),o!==0){if(m=!c(),r=0,m&&!s)_(!0).catch(function(){return null});return Promise.resolve(y)}if(s)return s.finally(function(){return r=0});return _(!1)},i.preload=function(){let m;if(m=t.read(),o!==0){if(!c()&&!s)_(!0,!0).catch(function(){return null});return Promise.resolve(m)}if(s)return s;return _(!1,!0)},i.write=function(m){return f++,a?.abort(),a=null,s=null,n.value=!1,l.value=null,t.value=m,o=m!=null?Date.now():0,r=0,m},i.reset=function(){f++,a?.abort(),a=null,s=null,n.value=!1,l.value=null,t.value=null,o=0,r=0;return},i.refetch=function(){return _(!1)},Object.defineProperty(i,"loading",{get(){return n.value}}),Object.defineProperty(i,"error",{get(){return l.value}}),i};M4=64;L4=function(e,u){let t,l,n;return l=new Map,t=function(i){let a,r,f;if(f=i!=null&&typeof i==="object"?JSON.stringify(i):i,a=l.get(f),a)l.delete(f),l.set(f,a);else if(a=S3(function(s){return e(i,s)},u),l.set(f,a),l.size>M4)for(let s of l.keys()){if(r=l.get(s),r.loading)continue;r.reset(),l.delete(s);break}return a},n=function(i){return t(i).read()},n[G2]=!0,n.cellFor=t,n.reset=function(){for(let i of l.values())i.reset();l.clear();return},n};function q6(e){let u,t;return t=U6(e.staleTime),u=e.fetch.length>=1?L4(e.fetch,t):S3(e.fetch,t),u}function g6(e,u={}){let t,l,n,i,a;return l=h1(!1),n=h1(!1),t=h1(null),i=0,a=async function(...r){let f,s;return f=++i,l.value=!0,n.value=!1,t.value=null,await(async()=>{try{if(s=await e(...r),f===i)n.value=!0,await u.onSuccess?.(s);return s}catch(c){if(f!==i)return;if(t.value=c,u.onError)await u.onError(c);else throw c;return}finally{if(f===i)l.value=!1}})()},Object.defineProperty(a,"pending",{get(){return l.value}}),Object.defineProperty(a,"succeeded",{get(){return n.value}}),Object.defineProperty(a,"error",{get(){return t.value}}),a}D2=function(e){return typeof e==="function"?e:function(){return e.value}};c2=function(e,u){return Object.defineProperty(e,"dispose",{value(){return u?.()},configurable:!0,writable:!0}),e};R2=function(e,u,t){let l;return l={read(){return e.read()}},Object.defineProperty(l,"value",{get(){return e.value},set(n){return u.value=n}}),c2(l,t)};var n5=function(e,u){let t,l,n;return l=D2(u),n=h1(!!l()),t=X1(function(){let i;if(l())return i=setTimeout(function(){return n.value=!0},e),function(){return clearTimeout(i)};else return n.value=!1}),typeof u!=="function"?R2(n,u,t):c2(n,t)},F6=function(e,u){let t,l,n;return l=D2(u),n=h1(l()),t=X1(function(){let i,a;return a=l(),i=setTimeout(function(){return n.value=a},e),function(){return clearTimeout(i)}}),typeof u!=="function"?R2(n,u,t):c2(n,t)},$6=function(e,u){let t,l,n,i;return l=D2(u),i=h1(l()),n=0,t=X1(function(){let a,r,f,s;if(s=l(),a=Date.now(),r=e-(a-n),r<=0)return i.value=s,n=a;else return f=setTimeout(function(){return i.value=l(),n=Date.now()},r),function(){return clearTimeout(f)}}),typeof u!=="function"?R2(i,u,t):c2(i,t)},N6=function(e,u){let t,l,n;return l=D2(u),n=h1(!!l()),t=X1(function(){let i;if(l())return n.value=!0;else return i=setTimeout(function(){return n.value=!1},e),function(){return clearTimeout(i)}}),typeof u!=="function"?R2(n,u,t):c2(n,t)};function i5(){let e,u,t,l;return u=new Map,l=new Set,e=new Map,t=function(n,i){let a=[];for(let r of Array.from(l))a.push((()=>{try{return r(n,i)}catch(f){return console.error("[Rip] watcher error:",f)}})());return a},{read(n){return u.get(n)},write(n,i){let a;return a=!u.has(n),u.set(n,i),e.delete(n),t(a?"create":"change",n)},del(n){return u.delete(n),e.delete(n),t("delete",n)},exists(n){return u.has(n)},size(){return u.size},list(n=""){let i,a,r;r=[],i=n?n+"/":"";for(let[f]of u)if(f.startsWith(i)){if(a=f.slice(i.length),a.includes("/"))continue;r.push(f)}return r},listAll(n=""){let i,a;a=[],i=n?n+"/":"";for(let[r]of u)if(r.startsWith(i))a.push(r);return a},load(n){let i=[];for(let a in n){let r=n[a];u.set(a,r),i.push(e.delete(a))}return i},watch(n){let i;return l.add(n),i=!1,function(){if(i)return;return i=!0,l.delete(n)}},getCompiled(n){return e.get(n)},setCompiled(n,i){return e.set(n,i)}}}v4=function(e){let u;if(u=e.replace(/\.rip$/,""),u=u.replace(/\[\.\.\.(\w+)\]/g,"*$1"),u=u.replace(/\[(\w+)\]/g,":$1"),u=u.split("/").filter(function(t){return!/^\(.+\)$/.test(t)}).join("/"),u==="index"||u==="")return"/";return u=u.replace(/\/index$/,""),"/"+u};p4=function(e){let u,t,l;return t=[],u=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),l=u.replace(/\*(\w+)/g,function(n,i){return t.push(i),"(.*)"}).replace(/:(\w+)/g,function(n,i){return t.push(i),"([^/]+)"}),{regex:new RegExp("^"+l+"$"),names:t}};m3=function(e,u){let t,l;for(let n of u)if(t=e.match(n.regex.regex),t){l={};for(let i=0;i<n.regex.names.length;i++){let a=n.regex.names[i];l[a]=decodeURIComponent(t[i+1])}return{route:n,params:l}}return null};W2=function(e,u="_route"){let t,l,n,i,a,r,f,s,c,h;f=[],n=new Map,t=e.listAll(u);for(let o of t){if(r=o.slice(u.length+1),!r.endsWith(".rip"))continue;if(i=r.split("/").pop(),i==="_layout.rip"){l=r==="_layout.rip"?"":r.slice(0,-12),n.set(l,o);continue}if(i.startsWith("_"))continue;if(c=r.split("/"),c.length>1&&c.some(function(_,m){return m<c.length-1&&_.startsWith("_")}))continue;h=v4(r),a=p4(h),f.push({pattern:h,regex:a,file:o,rel:r})}s=new Map;for(let o of f){if(s.has(o.pattern))throw Error(`Rip App: '${s.get(o.pattern)}' and '${o.rel}' both resolve to '${o.pattern}'`);s.set(o.pattern,o.rel)}return f.sort(function(o,_){let m,y,w,b;if(y=(o.pattern.match(/:/g)||[]).length,b=(_.pattern.match(/:/g)||[]).length,m=o.pattern.includes("*")?1:0,w=_.pattern.includes("*")?1:0,m!==w)return m-w;if(y!==b)return y-b;return o.pattern.localeCompare(_.pattern)}),{routes:f,layouts:n}};_3=function(e,u,t){let l,n,i,a;if(l=[],i=e.slice(u.length+1),a=i.split("/"),n="",t.has(""))l.push(t.get(""));for(let r=0;r<a.length;r++){let f=a[r];if(r===a.length-1)break;if(n=n?n+"/"+f:f,t.has(n))l.push(t.get(n))}return l};function u5(e,u={}){let t,l,n,i,a,r,f,s,c,h,o,_,m,y,w,b,D,A,d,R,E,O,U,$,S,g,q,H,B,L,W,e1,N,o1,K,Y,F,P;if(o2("createRouter"),L=u.root||"_route",b=u.base||"",A=u.hash||!1,O=u.onError||null,K=function(M){if(!b)return M;if(M===b)return"/";if(M.startsWith(b+"/"))return M.slice(b.length);return M},h=function(M){return b?b+M:M},H=function(){let M;if(A){if(M=location.hash.slice(1),!M)return"/";return M[0]==="/"?M:"/"+M}else return location.pathname+location.search+location.hash},P=function(M){return A?M==="/"?location.pathname:"#"+M.slice(1):h(M)},f=h1(K(A?H():location.pathname)),r=h1({}),c=h1(null),n=h1([]),s=h1({}),l=h1(""),i=n5(100,h1(!1)),a=h1(f.value),Y=W2(e,L),d=new Set,F=e.watch(function(M,Q){if(!Q.startsWith(L+"/"))return;return Y=W2(e,L)}),B=function(M){let Q,n1,p,i1,l1,I,J;if(l1=M.split("?")[0].split("#")[0],p=K(l1),p=p[0]==="/"?p:"/"+p,i1=M.split("?")[1]?.split("#")[0]||"",n1=M.includes("#")?M.split("#")[1]:"",I=m3(p,Y.routes),I){if(Q=p,i1)Q+=`?${i1}`;if(n1)Q+=`#${n1}`;P2(function(){return f.value=p,r.value=I.params,c.value=I.route,n.value=_3(I.route.file,L,Y.layouts),s.value=Object.fromEntries(new URLSearchParams(i1)),l.value=n1,a.value=Q}),J=Array.from(d);for(let v of J)try{v(W.current)}catch(V){console.error("[Rip] router onNavigate callback error:",V)}return!0}if(O)O({status:404,path:p});return!1},g=null,typeof history<"u"&&"scrollRestoration"in history)g=history.scrollRestoration,history.scrollRestoration="manual";if(q=function(M){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(M):setTimeout(M,16)},_=function(M){let Q,n1;if(typeof window>"u")return;return Q=0,n1=function(){let p;return p=Math.max(0,(document?.documentElement?.scrollHeight||0)-window.innerHeight),window.scrollTo(0,Math.min(M,p)),Q+=1,M>p&&Q<20?q(n1):void 0},q(n1)},N=null,$=function(){if(N||typeof window>"u")return;return N=setTimeout(function(){return N=null,(()=>{try{return history.replaceState({...history.state||{},_ripScroll:window.scrollY},"",location.href)}catch{}})()},100)},typeof window<"u")window.addEventListener("scroll",$,{passive:!0});if(U=function(M){let Q;return Q=M?.state?._ripScroll,B(H()),typeof Q==="number"?_(Q):void 0},typeof window<"u")window.addEventListener("popstate",U);if(o1=function(M){let Q;if(!M?.href)return!0;if(Q=(()=>{try{return new URL(M.href,location.origin)}catch{return null}})(),!Q)return!0;if(Q.origin!==location.origin)return!0;if(M.target==="_blank")return!0;if(M.hasAttribute("download"))return!0;if(M.hasAttribute("data-router-ignore"))return!0;if(b&&!A){if(!(Q.pathname===b||Q.pathname.startsWith(b+"/")))return!0}return!1},E=function(M){let Q,n1,p,i1;if(M.defaultPrevented)return;if(M.button!==0||M.metaKey||M.ctrlKey||M.shiftKey||M.altKey)return;p=M.target;while(p&&p.tagName!=="A")p=p.parentElement;if(!p)return;if(o1(p))return;return i1=new URL(p.href,location.origin),M.preventDefault(),Q=A&&i1.hash?i1.hash.slice(1)||"/":i1.pathname+i1.search+i1.hash,n1=p.hasAttribute("data-router-noscroll"),W.push(Q,{noScroll:n1})},typeof document<"u")document.addEventListener("click",E);return S=new WeakSet,R=function(M){let Q;if(Q=M.split("?")[0].split("#")[0],Q=decodeURIComponent(Q),Q=K(Q),Q[0]!=="/")Q="/"+Q;if(Q.length>1&&Q.endsWith("/"))Q=Q.slice(0,-1);return Q},D=function(){let M;if(M=A?K(H()).split("?")[0].split("#")[0]:f.value.split("?")[0].split("#")[0],M[0]!=="/")M="/"+M;if(M.length>1&&M.endsWith("/"))M=M.slice(0,-1);return M},o=function(){let M,Q,n1,p,i1,l1;if(typeof document>"u")return;Q=D(),M=document.querySelectorAll("a[href]");for(let I of M){if(o1(I))continue;if(l1=(()=>{try{return new URL(I.href,location.origin)}catch{return null}})(),!l1)continue;if(i1=R(l1.pathname+l1.search+l1.hash),n1=null,i1===Q)n1="page";if(!n1&&Q!=="/"&&Q.startsWith(i1+"/")&&i1!=="")n1="true";if(p=I.getAttribute("aria-current"),n1){if(p&&!S.has(I))continue;I.setAttribute("aria-current",n1),S.add(I)}else if(S.has(I))I.removeAttribute("aria-current"),S.delete(I)}return},y=null,w=!1,e1=function(){let M;if(w)return;return w=!0,M=function(){return w=!1,o()},typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(M):setTimeout(M,0)},m=X1(function(){let M;if(typeof document>"u")return;if(D(),e1(),!y)y=new MutationObserver(function(){return e1()}),M=document.body||document.documentElement,y.observe(M,{childList:!0,subtree:!0});return}),W={push(M,Q){let n1;if(n1=typeof window<"u"?window.scrollY:0,B(M)){try{history.replaceState({...history.state||{},_ripScroll:n1},"",location.href)}catch{}return history.pushState({_ripScroll:0},"",P(a.read())),!Q?.noScroll&&typeof window<"u"?window.scrollTo(0,0):void 0}},replace(M,Q){if(B(M))return history.replaceState({_ripScroll:0},"",P(a.read())),!Q?.noScroll&&typeof window<"u"?window.scrollTo(0,0):void 0},back(){return history.back()},forward(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate(M){return d.add(M),function(){return d.delete(M)}},rebuild(){return Y=W2(e,L)},match(M){let Q,n1,p,i1,l1;if(/^[a-z][a-z0-9+.-]*:\/\//i.test(M)){if(l1=(()=>{try{return new URL(M,location.origin)}catch{return null}})(),!l1)return null;M=A&&l1.hash?l1.hash.slice(1)||"/":l1.pathname+l1.search+l1.hash}if(p=M.split("?")[0].split("#")[0],Q=K(p),Q=Q[0]==="/"?Q:"/"+Q,n1=M.split("?")[1]?.split("#")[0]||"",i1=m3(Q,Y.routes),!i1)return null;return{path:Q,params:i1.params,route:i1.route,layouts:_3(i1.route.file,L,Y.layouts),query:Object.fromEntries(new URLSearchParams(n1)),hash:M.includes("#")?M.split("#")[1]:""}},ownsAnchor(M){return!o1(M)},routes:void 0,init(){return B(H()),W},destroy(){if(typeof window<"u")window.removeEventListener("popstate",U);if(typeof window<"u")window.removeEventListener("scroll",$);if(typeof document<"u")document.removeEventListener("click",E);if(g!==null&&typeof history<"u")history.scrollRestoration=g;return y?.disconnect(),y=null,m?.(),F?.(),F=null,i?.dispose?.(),d.clear()}},t=q4(function(){return{path:f.value,params:r.value,route:c.value,layouts:n.value,query:s.value,hash:l.value}}),Object.defineProperty(W,"current",{get(){return t.value}}),Object.defineProperty(W,"path",{get(){return f.value}}),Object.defineProperty(W,"params",{get(){return r.value}}),Object.defineProperty(W,"route",{get(){return c.value}}),Object.defineProperty(W,"layouts",{get(){return n.value}}),Object.defineProperty(W,"query",{get(){return s.value}}),Object.defineProperty(W,"hash",{get(){return l.value}}),Object.defineProperty(W,"navigating",{get(){return i.value},set(M){return i.value=M}}),Object.defineProperty(W,"routes",{get(){return Y.routes}}),W}c3=function(e,u){if(e.length!==u.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!==u[t])return!1;return!0};d2=function(e){if(typeof e.default==="function"&&(e.default.prototype?.mount||e.default.prototype?._create))return e.default;for(let u in e){let t=e[u];if(typeof t==="function"&&(t.prototype?.mount||t.prototype?._create))return t}return typeof e.default==="function"?e.default:void 0};h3=function(e){let u;u={};for(let t in e){let l=e[t];if(typeof l==="function"&&(l.prototype?.mount||l.prototype?._create))u[t]=l}return u};B4=function(e){let u;return u=e.split("/").pop().replace(/\.rip$/,""),u.replace(/(^|[-_])([a-z])/g,function(t,l,n){return n.toUpperCase()})};Z4=function(e,u=["_app","_lib","_pkg","_route"]){let t,l,n,i,a;l={},a=Array.isArray(u)?u:[u],i=[];for(let r of a)for(let f of e.listAll(r))i.push(f);for(let r of i){if(!r.endsWith(".rip"))continue;if(t=r.split("/").pop(),t.startsWith("_"))continue;if(t==="index.rip")continue;if(n=B4(r),l[n])console.warn(`[Rip] Component name collision: ${n} (${l[n]} vs ${r})`);l[n]=r}return l};j4=function(e,u,t){let l,n,i,a;if(n=e.replace(/^(\.\.\/|\.\/)+/,""),u){i=u.split("/"),i.pop();for(let r of e.split("/"))if(r==="..")i.pop();else if(r!==".")i.push(r);if(l=i.join("/"),t.exists(l))return l}if(t.exists(n))return n;for(let r of["_pkg","_lib","_app","_route"])if(a=`${r}/${n}`,t.exists(a))return a;return null};o3=function(e){let u,t,l,n,i,a,r;if(!e)return[];if(a=e.trim(),!a)return[];if(n=[],u=a.indexOf("{"),u>=0){if(t=a.lastIndexOf("}"),t<0)return n;l=a.slice(u+1,t);for(let f of l.split(",")){if(r=f.trim(),!r)continue;n.push(r.split(/\s+as\s+/).pop().trim())}a=a.slice(0,u).replace(/,\s*$/,"").trim()}for(let f of a.split(",")){if(i=f.trim(),!i)continue;if(/^\*\s+as\s+/.test(i))n.push(i.replace(/^\*\s+as\s+/,"").trim());else n.push(i)}return n};Z1=async function(e,u,t=null,l=null,n=null){let i,a,r,f,s,c,h,o,_,m,y,w,b,D,A,d,R,E,O,U,$,S,g,q,H,B,L,W,e1,N,o1,K,Y,F,P;if(t&&l){if(c=t.getCompiled(l),c)return c}if(n&&l)n.compiling??={},n.compiling[l]=!0;return await(async()=>{try{if(o=globalThis?.__ripDebug?.enabled&&l,e1=0,d=o?u(e,{sourceMap:"inline",filename:l}):u(e),n){if(A=new Set,H=n.packages||{},Object.keys(H).length>0)a=/^(\s*import\s+(?:.*?\s+from\s+)?['"])(@rip-lang\/[^\/'"]+)((?:\/[^'"]*)?)(['"];?\s*)$/gm,d=d.replace(a,function(M,Q,n1,p,i1){let l1,I;if(l1=H[n1],!l1)return M;return I=!p?`_pkg/${l1.short}/${l1.entry}`:p.endsWith(".rip")?`_pkg/${l1.short}${p}`:`_pkg/${l1.short}${p}.rip`,`${Q}${I}${i1}`});if(q=/^(\s*)import\s+([^'"]+?)\s+from\s+['"](@rip-lang\/[^'"]+)['"];?\s*$/gm,d=d.replace(q,function(M,Q,n1,p){let i1,l1,I,J,v,V,a1,s1;if(a1=p.replace(/^(@rip-lang\/[^\/]+).*$/,"$1"),H[a1])return M;if(s1=n1.trim(),s1.startsWith("type "))return`${Q}// type-only import erased: ${p}`;if(J=s1.indexOf("{"),l1=s1.lastIndexOf("}"),J<0||l1<=J)return console.warn(`[Rip] Skipping non-named import from ${p}; only named imports from '@rip-lang/*' are supported.`),M;V=[];for(let r1 of s1.slice(J+1,l1).split(",")){if(I=r1.trim().replace(/^type\s+/,""),!I)continue;if(/\s+as\s+/.test(I))[v,i1]=I.split(/\s+as\s+/).map(function(T){return T.trim()}),V.push(`${v}: ${i1}`);else V.push(I)}if(V.length===0)return`${Q}// import erased: ${p}`;return`${Q}const { ${V.join(", ")} } = globalThis;`}),t){K=/^(\s*(?:import|export)\s+(?:(.*?)\s+from\s+)?['"])([^'"]*\.rip)(['"];?\s*)$/gm,E=Array.from(d.matchAll(K));for(let M=E.length-1;M>=0;M--){let Q=E[M];if([b,L,r,Y,B]=Q,F=j4(Y,l,t),F===l)continue;if(!F){if(U=`[Rip] Could not resolve import: ${Y}`,l)U+=` (from ${l})`;console.warn(U);continue}if(!n.blobUrls?.[F]){if(n.compiling?.[F])continue;if(m=t.read(F),m)await Z1(m,u,t,F,n)}if(s=n.blobUrls?.[F],s){o1=`${L}${s}${B}`,d=d.slice(0,Q.index)+o1+d.slice(Q.index+b.length);for(let n1 of o3(r))A.add(n1)}}}i=/^\s*(?:import|export)\s+(?:(.*?)\s+from\s+)?['"][^'"]*['"];?\s*$/gm;for(let M of d.matchAll(i))for(let Q of o3(M[1]))A.add(Q);S={};for(let M in n.map){let Q=n.map[M];if(A.has(M))continue;if(Q!==l&&d.includes(`new ${M}(`)){if(!n.classes[M]){if(m=t.read(Q),m){_=await Z1(m,u,t,Q,n),w=h3(_);for(let n1 in w){let p=w[n1];n.classes[n1]=p}}}if(n.classes[M])S[M]=!0}}if($=Object.keys(S),$.length>0)R=JSON.stringify(n.key),W=`const {${$.join(", ")}} = globalThis[${R}];
|
|
2957
|
+
`,d=W+d,e1+=1}if(D=l?`// ${l}
|
|
2958
|
+
`:"",D)e1+=1;if(y=D+d,o&&e1>0){if(g=globalThis?.__ripDebug?.offsetSourceMap,g)y=g(y,e1)}if(f=new Blob([y],{type:"application/javascript"}),P=URL.createObjectURL(f),N=null,n&&l){if(n.blobUrls??={},N=n.blobUrls[l],N&&N!==P)try{URL.revokeObjectURL(N)}catch{}n.blobUrls[l]=P}if(O=await import(P),h=!0,n){w=h3(O);for(let M in w){let Q=w[M];n.classes[M]=Q}}if(t&&l)t.setCompiled(l,O);return O}finally{if(n&&l){if(n.compiling)delete n.compiling[l]}if(!h&&P&&n&&l){try{URL.revokeObjectURL(P)}catch{}if(n.blobUrls?.[l]===P)delete n.blobUrls[l]}}})()};y3=function(e,u){let t;return e.innerHTML="",t=document.createElement("pre"),t.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",t.textContent=u,e.appendChild(t)};function t5(e){let u,t,l,n,i,a,r,f,s,c,h,o,_,m,y,w,b,D,A,d,R,E,O,U,$,S,g,q,H,B,L,W,e1,N,o1,K,Y;if(o2("createRenderer"),{router:H,app:t,components:i,resolver:g,compile:n,target:N,onError:d}=e,U=e.preload==="intent",a=typeof N==="string"?document.querySelector(N):N||document.getElementById("app"),!a)a=document.createElement("div"),a.id="app",document.body.appendChild(a);return r=null,h=null,s=null,c=null,f=[],b=[],D=a,m=0,o=null,Y=null,y=function(F){if(!g)return;if(g.blobUrls?.[F]){try{URL.revokeObjectURL(g.blobUrls[F])}catch{}delete g.blobUrls[F]}return g.classes&&g.map?(()=>{let P=[];for(let M in g.map){let Q=g.map[M];P.push(Q===F?delete g.classes[M]:void 0)}return P})():void 0},K=function(){if(r){try{r.unmount?.({removeDOM:!1})}catch(F){console.error("[Rip] page unmount error:",F)}return r=null,h=null}},o1=function(){K();for(let F=b.length-1;F>=0;F--){let P=b[F];try{P.unmount?.({removeDOM:!0})}catch(M){console.error("[Rip] layout unmount error:",M)}}return b=[],D=a,s=null,c=null,f=[]},B=function(F,P){if(!(F&&P))return!1;if(Object.keys(F).length!==Object.keys(P).length)return!1;for(let M in F){let Q=F[M];if(P[M]!==Q)return!1}return!0},S=function(F){let P;P=O1(t.data);for(let M of F.split(".")){if(!(P!=null&&typeof P==="object"))return null;if(P=P[M],S1(P))return P}return null},_=async function(F,P,M,Q=!1,n1=0){let p,i1,l1,I,J,v,V,a1,s1,r1,T,X,u1,c1;a1=new Map;for(let z=0;z<F.length;z++){let Z=F[z];if(z<n1)continue;if(J=Z.cls?.__gates,!(J&&J.length))continue;for(let C of J){if(u1=typeof C==="string"?C:C.path,r1=typeof C==="string"?null:C.key,p=S(u1),!p)throw Error(`[Rip] ${Z.file}: '${u1} <~' does not resolve to a source — declare it with source() in app/stash.rip`);if(s1=void 0,s2(p)){if(!r1)throw Error(`[Rip] ${Z.file}: '${u1}' is a keyed source — gate with a key: ${u1}(params.…)`);s1=r1(P||{},M||{}),p=p.cellFor(s1)}else if(r1)throw Error(`[Rip] ${Z.file}: '${u1}' is not a keyed source — drop the key argument`);if(v=u1+"|"+String(s1??""),V=a1.get(v),!V)V={cell:p,owners:[],path:u1},a1.set(v,V);V.owners.push(z)}}if(T=[...a1.values()],!T.length)return{failedIndex:1/0,failure:null};c1=await Promise.allSettled(T.map(function(z){return Q?z.cell.preload():z.cell.ensure()})),l1=1/0,I=null;for(let z=0;z<c1.length;z++){let Z=c1[z];if(i1=null,Z.status==="rejected")i1=Z.reason;else if(!Q&&Z.value==null)i1=Error(`[Rip] gate '${T[z].path} <~' resolved to ${Z.value}: a gated source must resolve to a non-null value or throw. For a value that can be absent, read it ungated with ~= instead of gating it.`);if(!i1)continue;if(X=Math.min(...T[z].owners),X<l1)l1=X,I={status:i1?.status??i1?.response?.status??500,message:i1?.message??String(i1),error:i1,path:T[z].path}}return{failedIndex:l1,failure:I}},q=function(F){let P;P=!1;for(let M=b.length-1;M>=0;M--){let Q=b[M];if(Q.onError)try{Q.onError(F),P=!0;break}catch(n1){console.error("Renderer: error boundary failed:",n1)}}if(!P){if(console.error(`Renderer: gate '${F.path}' failed:`,F.error),d)d(F);return o1(),y3(a,`${F.status}: ${F.message}`)}},A=async function(F,P=!1){let M,Q,n1,p,i1,l1,I,J,v,V,a1,s1,r1,T,X,u1,c1,z,Z,C,k,t1,x,f1,_1,b1,U1,y1,M1,R1,M3,q1,O3,U3,Z2,n2;if({route:q1,params:y1,layouts:u1,query:R1}=F,!q1)return;if(O3=q1.file===h&&B(y1,s),M3=function(){let w1,N1;if(w1=r?.constructor,N1=w1?.__gates,!N1)return!1;for(let B1 of N1)if(typeof B1!=="string"&&B1.key)try{if(B1.key(y1||{},c||{})!==B1.key(y1||{},R1||{}))return!0}catch{return!0}return!1},O3&&!P&&!M3()){if(!B(R1,c)){if(c=R1,r?.load)try{await r.load(y1,R1)}catch(w1){if(console.error(`Renderer: error in query-only load for ${q1.file}:`,w1),d)d({status:500,message:w1.message,error:w1})}}return}return a1=++m,H.navigating=!0,await(async()=>{try{if(Z2=i.read(q1.file),!Z2){if(d)d({status:404,message:`File not found: ${q1.file}`});H.navigating=!1;return}if(C=await Z1(Z2,n,i,q1.file,g),a1!==m){H.navigating=!1;return}if(M=d2(C),!M){if(d)d({status:500,message:`No component found in ${q1.file}`});H.navigating=!1;return}X=[];for(let w1 of u1){if(z=i.read(w1),!z)continue;if(c1=await Z1(z,n,i,w1,g),a1!==m){H.navigating=!1;return}if(Q=d2(c1),!Q)continue;X.push({file:w1,cls:Q})}if(I=[...X,{file:q1.file,cls:M}],Z=!c3(u1,f),k=Z?0:X.length,{failedIndex:v,failure:V}=await _(I,y1,R1,!1,k),a1!==m){H.navigating=!1;return}if(x=r?._target,Z)o1();else K();if(s=y1,c=R1,t1=Z?a:D,J=Math.min(v,X.length),Z&&u1.length>0){a.innerHTML="",t1=a,l1=globalThis.__ripComponent?.__pushComponent,p=globalThis.__ripComponent?.__popComponent,f1=null;for(let w1=0;w1<X.length;w1++){let N1=X[w1];if(w1>=J)break;Q=N1.cls,M1=l1?.(f1),globalThis.__ripGateMount=Q;try{r1=new Q({app:t,params:y1,router:H})}finally{globalThis.__ripGateMount=null,p?.(M1)}if(r1.beforeMount){n1=l1?.(r1);try{r1.beforeMount()}finally{p?.(n1)}}n2=document.createElement("div"),n2.setAttribute("data-layout",N1.file),t1.appendChild(n2),r1.mount(n2),b.push(r1),f1=r1,U3=n2.querySelector("#content")||n2,t1=U3}f=J<X.length?u1.slice(0,J):[...u1],D=t1}else if(Z)a.innerHTML="",f=[],D=a;if(V){x?.remove(),q(V),H.navigating=!1;return}U1=document.createElement("div"),U1.setAttribute("data-component",q1.file),t1.appendChild(U1),l1=globalThis.__ripComponent?.__pushComponent,p=globalThis.__ripComponent?.__popComponent,_1=b[b.length-1]||null,b1=l1?.(_1),globalThis.__ripGateMount=M;try{T=new M({app:t,params:y1,query:R1,router:H})}finally{globalThis.__ripGateMount=null,p?.(b1)}if(T.beforeMount){i1=l1?.(T);try{T.beforeMount()}finally{p?.(i1)}}if(T.mount(U1),r=T,h=q1.file,T.load)await T.load(y1,R1);return x?.remove(),H.navigating=!1}catch(w1){if(H.navigating=!1,console.error(`Renderer: error mounting ${q1.file}:`,w1),d)d({status:500,message:w1.message,error:w1});s1=!1;for(let N1=b.length-1;N1>=0;N1--){let B1=b[N1];if(B1.onError)try{B1.onError(w1),s1=!0;break}catch(l5){console.error("Renderer: error boundary failed:",l5)}}return(()=>{if(!s1)return o1(),y3(a,w1.stack||w1.message)})()}})()},e1=!1,O=async function(F){let P,M,Q,n1,p,i1,l1,I;if(Q=H.match?.(F),!Q?.route)return;if(i1=c3(Q.layouts,f),i1&&Q.route.file===h&&B(Q.params,s))return;if(P=[],!i1)for(let J of Q.layouts){if(p=i.read(J),!p)continue;if(n1=await Z1(p,n,i,J,g),M=d2(n1),M)P.push({file:J,cls:M})}if(I=i.read(Q.route.file),I){if(l1=await Z1(I,n,i,Q.route.file,g),M=d2(l1),M)P.push({file:Q.route.file,cls:M})}await _(P,Q.params,Q.query,!0);return},u=50,w={href:null,at:0},W=null,L=null,l=function(){if(W)clearTimeout(W),W=null;return L=null},R=function(F){let P,M;P=F.target;while(P&&P.tagName!=="A")P=P.parentElement;if(!P)return;if(!H.ownsAnchor?.(P))return;if(P===L)return;return l(),L=P,M=P.href,W=setTimeout(function(){let Q;if(W=null,L=null,Q=Date.now(),M===w.href&&Q-w.at<3000)return;return w.href=M,w.at=Q,O(M).catch(function(){return null})},u)},E=function(F){let P;if(!L)return;return P=F.relatedTarget,!(P&&L.contains(P))?l():void 0},$={start(){if(e1)return $;if(e1=!0,o=X1(function(){let F;return F=H.current,F.route?A(F):void 0}),Y=i?.watch(function(F,P){return(Array.isArray(["change","delete"])?["change","delete"].includes(F):(F in["change","delete"]))?y(P):void 0}),U)document.addEventListener("pointerover",R,{passive:!0}),document.addEventListener("focusin",R,{passive:!0}),document.addEventListener("pointerout",E,{passive:!0}),document.addEventListener("focusout",E,{passive:!0});return H.init(),$},stop(){if(!e1)return;if(e1=!1,o1(),o)o(),o=null;if(Y?.(),Y=null,l(),U)document.removeEventListener("pointerover",R),document.removeEventListener("focusin",R),document.removeEventListener("pointerout",E),document.removeEventListener("focusout",E);if(g?.blobUrls){for(let F in g.blobUrls){if(!Object.hasOwn(g.blobUrls,F))continue;let P=g.blobUrls[F];try{URL.revokeObjectURL(P)}catch{}}g.blobUrls={}}return a.innerHTML=""},remount(F=!1){let P,M;return M=typeof F==="object"?!!F.force:!!F,P=H.current,P.route?A(P,M):void 0}},$}X4=function(e){let u,t,l,n,i,a;return o2("connectWatch"),i=1000,n=30000,u=!1,l=null,a=null,t=function(){if(u)return;return l=new EventSource(e),l.addEventListener("connected",function(){return i=1000,console.log("[Rip] Hot reload connected")}),l.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),l.addEventListener("css",function(){let r,f;f=document.querySelectorAll('link[rel="stylesheet"]');let s=[];for(let c of f)r=new URL(c.href),r.searchParams.set("_t",Date.now()),c.href=r.toString();return s}),l.onerror=function(){if(l.close(),l=null,u)return;return a=setTimeout(t,i),i=Math.min(i*2,n)}},t(),function(){if(u)return;if(u=!0,a)clearTimeout(a),a=null;return l?.close(),l=null}};async function z6(e={}){let u,t,l,n,i,a,r,f,s,c,h,o,_,m,y,w,b,D,A,d,R,E,O,U,$,S,g,q;if(o2("launch"),t=(e.base||"").replace(/\/+$/,""),S=e.target||"#app",r=e.compile||null,y=e.persist||!1,_=e.hash||!1,!r)r=globalThis?.compileToJS||null;if(!document.querySelector(S))c=document.createElement("div"),c.id=S.replace(/^#/,""),document.body.prepend(c);if(e.bundle)n=e.bundle;else if(e.bundleUrl){if(m={},o=`__rip_etag_${e.bundleUrl}`,i=sessionStorage.getItem(o),i)m["If-None-Match"]=i;if(D=await fetch(e.bundleUrl,{headers:m}),D.status===304)n=JSON.parse(sessionStorage.getItem(`${o}_data`));else if(D.ok){if(n=await D.json(),h=D.headers.get("etag"),h)sessionStorage.setItem(o,h),sessionStorage.setItem(`${o}_data`,JSON.stringify(n))}else throw Error(`launch: ${e.bundleUrl} (${D.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(u=k4({components:{},routes:{},data:{}}),globalThis.__ripApp=u,l=i5(),n.modules)l.load(n.modules);if(a=`__rip_${t.replace(/\//g,"_")||"app"}`,A={map:Z4(l),classes:{},key:a,packages:n.packages||{}},globalThis[a]=A.classes,U=null,O="_app/stash.rip",l.exists(O)){if($=l.read(O),$)try{if(E=await Z1($,r,l,O,A),E?.stash)U=E.stash}catch(H){console.error(`[Rip] Failed to load app/stash.rip: ${H.message}`,H)}}if(U&&n.data)for(let H in n.data){let B=n.data[H];if(!S1(U[H]))U[H]=B}if(R=U??n.data,R)u.data=R;if(V4(O1(u.data)),n.routes)u.routes=n.routes;if(w=null,y)w=e5(u,{local:y==="local",key:`__rip_${t}`});if(u.data.title)document.title=u.data.title;if(d=u5(l,{root:"_route",base:t,hash:_,onError(H){return console.error(`[Rip] Error ${H.status}: ${H.message||H.path}`)}}),b=t5({router:d,app:u,components:l,resolver:A,compile:r,target:S,preload:n.data?.preload==="intent"?"intent":!1,onError(H){return console.error(`[Rip] ${H.message}`,H.error)}}),b.start(),g=null,n.data?.watch)g=X4(`${t}/watch`);return q=window,s=!1,f=function(){if(s)return;if(s=!0,g?.(),b.stop(),d.destroy(),w?.(),delete globalThis[a],delete globalThis.__ripApp,delete globalThis.__ripLaunched,q.app===u)delete q.app;return q.__RIP__?.app===u?delete q.__RIP__:void 0},q.app=u,q.__RIP__={app:u,components:l,router:d,renderer:b,resolver:A,destroy:f,version:"0.3.0"},globalThis.__ripLaunched=!0,{app:u,components:l,router:d,renderer:b,destroy:f}}D1=function(e,u){if(!u)return;return e.preventDefault(),e.stopPropagation(),u()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(e){return globalThis.__ariaLastFocusedEl=e.target},!0),globalThis.__ariaFocusTrackerBound=!0;N4=function(e,u){if(e.isComposing)return;return(()=>{switch(e.key){case"ArrowDown":return D1(e,u.next);case"ArrowUp":return D1(e,u.prev);case"Home":case"PageUp":return D1(e,u.first);case"End":case"PageDown":return D1(e,u.last);case"Enter":case" ":return D1(e,u.select);case"Escape":return D1(e,u.dismiss);case"Tab":return u.tab?.();default:return e.key.length===1?u.char?.(e.key):void 0}})()};H4=function(e,u,t,l=[],n=null){let i,a,r,f,s;if(a=function(c){return typeof c==="function"?c():c},s=a(u),s&&s.__ariaPopupDismiss)s.__ariaPopupDismiss(),s.__ariaPopupDismiss=null;if(!(e&&s))return;return r=(c)=>{return![s,...l.map(a)].some(function(h){return h?.contains(c.target)})?t():void 0},f=(c)=>{if(s?.contains(c.target))return;return n?n():t()},document.addEventListener("mousedown",r),window.addEventListener("scroll",f,!0),i=function(){return document.removeEventListener("mousedown",r),window.removeEventListener("scroll",f,!0)},s.__ariaPopupDismiss=i,i};K4=function(e=250){let u;return u=0,{block(t=e){return u=Date.now()+t},canOpen(){return Date.now()>=u}}};F4=function(e,u,t,l=null){let n,i,a,r,f,s,c,h,o,_,m;if(r=function(y){return typeof y==="function"?y():y},n=function(){let y,w;if(y=document.activeElement,y&&y!==document.body)return y;if(w=globalThis.__ariaLastFocusedEl,w?.isConnected!==!1)return w;return null},a=r(u),!a)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(c=null,m=function(y){if(y){a.hidden=!1;try{a.inert=!1}catch{}return a.removeAttribute("aria-hidden")}else{try{a.inert=!0}catch{}return a.setAttribute("aria-hidden","true"),a.hidden=!0}},h=function(){let y,w;if(w=c,c=null,!w?.focus)return;return y=function(b=6){if(w.isConnected===!1)return;try{w.focus({preventScroll:!0})}catch{w.focus()}if(document.activeElement===w||b<=1)return;return setTimeout(function(){return y(b-1)},16)},requestAnimationFrame(function(){return y()})},a.__ariaBindPopover)a.removeEventListener("toggle",a.__ariaBindPopover),a.__ariaBindPopover=null;if(f=function(y){let w;if(w=y.newState==="open",w)c=r(l)||n(),m(!0);else m(!1),h();return t?.(w)},a.addEventListener("toggle",f),a.__ariaBindPopover=f,o=a.matches(":popover-open"),i=!!e,o!==i){if(_=r(l),i)c=_||n(),m(!0);s=_&&i?{force:i,source:_}:{force:i};try{a.togglePopover(s)}catch{}}else m(i);return function(){return a.removeEventListener("toggle",f),a.__ariaBindPopover===f?a.__ariaBindPopover=null:void 0}};g4=function(e,u,t,l=!0){let n,i,a,r,f,s,c,h,o,_;if(a=function(m){return typeof m==="function"?m():m},n=function(){let m,y;if(m=document.activeElement,m&&m!==document.body)return m;if(y=globalThis.__ariaLastFocusedEl,y?.isConnected!==!1)return y;return null},i=a(u),!i?.showModal)return;if(h=null,_=function(m){if(m){i.hidden=!1;try{i.inert=!1}catch{}return i.removeAttribute("aria-hidden")}else{try{i.inert=!0}catch{}return i.setAttribute("aria-hidden","true"),i.hidden=!0}},o=function(){let m,y;if(y=h,h=null,!y?.focus)return;return m=function(w=6){if(y.isConnected===!1)return;try{y.focus({preventScroll:!0})}catch{y.focus()}if(document.activeElement===y||w<=1)return;return setTimeout(function(){return m(w-1)},16)},requestAnimationFrame(function(){return m()})},i.__ariaBindDialog)[s,c]=i.__ariaBindDialog,i.removeEventListener("cancel",s),i.removeEventListener("close",c),i.__ariaBindDialog=null;if(r=function(m){if(!l){m.preventDefault();return}return t?.(!1)},f=function(){return t?.(!1),_(!1),o()},i.addEventListener("cancel",r),i.addEventListener("close",f),i.__ariaBindDialog=[r,f],e&&!i.open){if(!h)h=n();_(!0);try{i.showModal()}catch{}}else if(!e&&i.open)i.close();else _(!!e);return function(){return i.removeEventListener("cancel",r),i.removeEventListener("close",f),i.__ariaBindDialog?.[0]===r?i.__ariaBindDialog=null:void 0}};P4=function(e,u,t="vertical"){let l,n;if(e.isComposing)return;return n=t!=="horizontal",l=t!=="vertical",(()=>{switch(e.key){case"ArrowDown":return n?D1(e,u.next):void 0;case"ArrowUp":return n?D1(e,u.prev):void 0;case"ArrowRight":return l?D1(e,u.next):void 0;case"ArrowLeft":return l?D1(e,u.prev):void 0;case"Home":case"PageUp":return D1(e,u.first);case"End":case"PageDown":return D1(e,u.last);case"Enter":case" ":return D1(e,u.select);case"Escape":return D1(e,u.dismiss);default:return e.key.length===1?u.char?.(e.key):void 0}})()};W4=function(e,u,t=4,l=!0){let n,i;if(!(e&&u))return;if(i=e.getBoundingClientRect(),u.style.position="fixed",u.style.left=`${i.left}px`,u.style.top=`${i.bottom+t}px`,u.style.minWidth=`${i.width}px`,n=u.getBoundingClientRect(),n.bottom>window.innerHeight)u.style.top=`${i.top-n.height-t}px`;if(n.right>window.innerWidth)u.style.left=`${window.innerWidth-n.width-t}px`;return l?u.style.visibility="visible":void 0};var H6='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';Y4=function(e){let u;return u=function(t){let l,n,i,a;if(t.key!=="Tab")return;if(a=e.querySelectorAll(H6),i=Array.from(a).filter(function(r){return r.offsetParent!==null}),!i.length)return;return l=i[0],n=i[i.length-1],t.shiftKey?document.activeElement===l?(t.preventDefault(),n.focus()):void 0:document.activeElement===n?(t.preventDefault(),l.focus()):void 0},e.addEventListener("keydown",u),function(){return e.removeEventListener("keydown",u)}};T4=function(e,u){let t,l;if(!e)return;if(l=e.querySelector("h1,h2,h3,h4,h5,h6"),l)l.id??=`${u}-title`,e.setAttribute("aria-labelledby",l.id);if(t=e.querySelector("p"),t)return t.id??=`${u}-desc`,e.setAttribute("aria-describedby",t.id)};r2=[];z4=function(e){let u;if(u=window.scrollY,r2.push({instance:e,scrollY:u}),r2.length===1)return document.body.style.position="fixed",document.body.style.top=`-${u}px`,document.body.style.width="100%"};G4=function(e){let u,t;if(u=r2.findIndex(function(l){return l.instance===e}),u<0)return;if({scrollY:t}=r2.splice(u,1)[0],!r2.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,t)};K2=!1;A2=!1;R3=function(){let e,u,t;if(K2)return A2;if(!(typeof document<"u"&&document.body))return!1;return(()=>{try{return e=document.createElement("div"),u=document.createElement("div"),e.style.cssText="position:fixed;top:100px;left:100px;width:10px;height:10px;anchor-name:--probe",u.style.cssText="position:fixed;inset:auto;margin:0;position-anchor:--probe;position-area:bottom start;width:10px;height:10px",document.body.appendChild(e),document.body.appendChild(u),t=u.getBoundingClientRect(),e.remove(),u.remove(),A2=t.top>50,K2=!0,A2}catch{return K2=!0,A2=!1}})()};U4=["position","inset","top","right","bottom","left","margin","marginTop","marginRight","marginBottom","marginLeft","transform","minWidth","positionAnchor","positionArea","positionTry","positionVisibility"];Q4=function(e){let u=[];for(let t of U4)u.push(e.style[t]="");return u};I4=function(e,u,t={}){let l,n,i,a,r,f,s,c;if(!(e&&u))return;if(r=t.placement??"bottom start",a=t.offset??4,n=t.matchWidth??!1,Q4(u),R3()){if(i=`--anchor-${u.id||Math.random().toString(36).slice(2,8)}`,f=u.__ariaPrevTrigger,f&&f!==e)try{f.style.anchorName=""}catch{}switch(u.__ariaPrevTrigger=e,e.style.anchorName=i,u.style.positionAnchor=i,u.style.position="fixed",u.style.inset="auto",u.style.margin="0",u.style.positionArea=r,u.style.positionTry="flip-block, flip-inline, flip-block flip-inline",u.style.positionVisibility="anchors-visible",[c]=r.split(" "),c){case"bottom":u.style.marginTop=`${a}px`;break;case"top":u.style.marginBottom=`${a}px`;break;case"left":u.style.marginRight=`${a}px`;break;case"right":u.style.marginLeft=`${a}px`;break}return n?u.style.minWidth="anchor-size(width)":void 0}else{switch(s=e.getBoundingClientRect(),u.style.position="fixed",u.style.inset="auto",u.style.margin="0",[c,l]=r.split(" "),l??="start",c){case"bottom":u.style.top=`${s.bottom+a}px`;break;case"top":u.style.bottom=`${window.innerHeight-s.top+a}px`;break;case"left":u.style.right=`${window.innerWidth-s.left+a}px`;break;case"right":u.style.left=`${s.right+a}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes(c):(c in["bottom","top"]))switch(l){case"start":u.style.left=`${s.left}px`;break;case"center":u.style.left=`${s.left+s.width/2}px`,u.style.transform="translateX(-50%)";break;case"end":u.style.right=`${window.innerWidth-s.right}px`;break}else switch(l){case"start":u.style.top=`${s.top}px`;break;case"center":u.style.top=`${s.top+s.height/2}px`,u.style.transform="translateY(-50%)";break;case"end":u.style.bottom=`${window.innerHeight-s.bottom}px`;break}return n?u.style.minWidth=`${s.width}px`:void 0}};$4=function(...e){return function(){let u=[];for(let t of e)u.push((()=>{try{return t?.()}catch{return null}})());return u}};globalThis.__aria??={listNav:N4,rovingNav:P4,popupDismiss:H4,popupGuard:K4,bindPopover:F4,bindDialog:g4,positionBelow:W4,trapFocus:Y4,wireAria:T4,lockScroll:z4,unlockScroll:G4,position:I4,hasAnchor:R3,combine:$4};globalThis.ARIA??=globalThis.__aria;k1.modules["app.rip"]=J2;for(let[e,u]of Object.entries(J2))if(typeof u==="function")globalThis[e]=u;})();
|