@abapify/adt-plugin-abapgit 0.4.1 → 0.4.4
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 +24 -0
- package/dist/index.d.mts +26 -25
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +23783 -1830
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
- package/xsd/acid.xsd +26 -0
- package/xsd/aifc.xsd +25 -0
- package/xsd/amsd.xsd +26 -0
- package/xsd/apis.xsd +26 -0
- package/xsd/aqbg.xsd +25 -0
- package/xsd/aqqu.xsd +25 -0
- package/xsd/aqsg.xsd +25 -0
- package/xsd/area.xsd +29 -0
- package/xsd/asfc.xsd +25 -0
- package/xsd/auth.xsd +26 -0
- package/xsd/avar.xsd +32 -0
- package/xsd/avas.xsd +26 -0
- package/xsd/bdef.xsd +15 -40
- package/xsd/char.xsd +26 -0
- package/xsd/chdo.xsd +25 -0
- package/xsd/cmod.xsd +46 -0
- package/xsd/cmpt.xsd +26 -0
- package/xsd/cus0.xsd +26 -0
- package/xsd/cus1.xsd +26 -0
- package/xsd/cus2.xsd +26 -0
- package/xsd/dcls.xsd +27 -0
- package/xsd/ddls.xsd +27 -0
- package/xsd/ddlx.xsd +32 -0
- package/xsd/dial.xsd +26 -0
- package/xsd/doct.xsd +30 -0
- package/xsd/docv.xsd +26 -0
- package/xsd/drul.xsd +26 -0
- package/xsd/dsys.xsd +30 -0
- package/xsd/ecat.xsd +15 -0
- package/xsd/ecsd.xsd +15 -0
- package/xsd/ecsp.xsd +15 -0
- package/xsd/ectc.xsd +15 -0
- package/xsd/ectd.xsd +15 -0
- package/xsd/ecvo.xsd +15 -0
- package/xsd/enhc.xsd +42 -0
- package/xsd/enho.xsd +34 -0
- package/xsd/enhs.xsd +29 -0
- package/xsd/enqu.xsd +38 -0
- package/xsd/ensc.xsd +27 -0
- package/xsd/fdt0.xsd +15 -0
- package/xsd/form.xsd +27 -0
- package/xsd/ftgl.xsd +26 -0
- package/xsd/fugr.xsd +17 -34
- package/xsd/g4ba.xsd +25 -0
- package/xsd/g4bs.xsd +25 -0
- package/xsd/http.xsd +27 -0
- package/xsd/iamu.xsd +26 -0
- package/xsd/iarp.xsd +23 -0
- package/xsd/iasp.xsd +23 -0
- package/xsd/iatu.xsd +26 -0
- package/xsd/iaxu.xsd +26 -0
- package/xsd/idoc.xsd +26 -0
- package/xsd/iext.xsd +26 -0
- package/xsd/iobj.xsd +34 -0
- package/xsd/iwmo.xsd +25 -0
- package/xsd/iwom.xsd +25 -0
- package/xsd/iwpr.xsd +25 -0
- package/xsd/iwsg.xsd +25 -0
- package/xsd/iwsv.xsd +25 -0
- package/xsd/iwvb.xsd +25 -0
- package/xsd/jobd.xsd +26 -0
- package/xsd/msag.xsd +37 -0
- package/xsd/nrob.xsd +27 -0
- package/xsd/nspc.xsd +27 -0
- package/xsd/oa2p.xsd +26 -0
- package/xsd/odso.xsd +30 -0
- package/xsd/otgr.xsd +26 -0
- package/xsd/para.xsd +27 -0
- package/xsd/pdts.xsd +27 -0
- package/xsd/pers.xsd +26 -0
- package/xsd/pinf.xsd +26 -0
- package/xsd/prag.xsd +26 -0
- package/xsd/prog.xsd +16 -33
- package/xsd/samc.xsd +26 -0
- package/xsd/sapc.xsd +26 -0
- package/xsd/scp1.xsd +25 -0
- package/xsd/scvi.xsd +26 -0
- package/xsd/sfbf.xsd +30 -0
- package/xsd/sfbs.xsd +33 -0
- package/xsd/sfpf.xsd +25 -0
- package/xsd/sfpi.xsd +15 -0
- package/xsd/sfsw.xsd +33 -0
- package/xsd/shi3.xsd +35 -0
- package/xsd/shi5.xsd +26 -0
- package/xsd/shi8.xsd +26 -0
- package/xsd/shlp.xsd +41 -0
- package/xsd/shma.xsd +26 -0
- package/xsd/sicf.xsd +31 -0
- package/xsd/sktd.xsd +26 -0
- package/xsd/sldd.xsd +25 -0
- package/xsd/smim.xsd +29 -0
- package/xsd/smtg.xsd +25 -0
- package/xsd/sobj.xsd +25 -0
- package/xsd/sod1.xsd +26 -0
- package/xsd/sod2.xsd +26 -0
- package/xsd/sots.xsd +26 -0
- package/xsd/splo.xsd +28 -0
- package/xsd/sppf.xsd +25 -0
- package/xsd/sprx.xsd +38 -0
- package/xsd/sqsc.xsd +26 -0
- package/xsd/srfc.xsd +26 -0
- package/xsd/srvb.xsd +16 -43
- package/xsd/srvd.xsd +15 -40
- package/xsd/ssfo.xsd +15 -0
- package/xsd/ssst.xsd +29 -0
- package/xsd/stvi.xsd +26 -0
- package/xsd/styl.xsd +26 -0
- package/xsd/sucu.xsd +38 -0
- package/xsd/susc.xsd +27 -0
- package/xsd/sush.xsd +26 -0
- package/xsd/suso.xsd +27 -0
- package/xsd/sxci.xsd +26 -0
- package/xsd/sxsd.xsd +26 -0
- package/xsd/tdlines.xsd +34 -0
- package/xsd/tobj.xsd +37 -0
- package/xsd/tran.xsd +38 -0
- package/xsd/type.xsd +34 -0
- package/xsd/types/acid.xsd +3 -0
- package/xsd/types/amsd.xsd +16 -0
- package/xsd/types/apis.xsd +15 -0
- package/xsd/types/area.xsd +3 -0
- package/xsd/types/auth.xsd +15 -0
- package/xsd/types/avar.xsd +11 -0
- package/xsd/types/avas.xsd +16 -0
- package/xsd/types/char.xsd +32 -0
- package/xsd/types/chdo.xsd +65 -0
- package/xsd/types/cmod.xsd +24 -0
- package/xsd/types/cmpt.xsd +17 -0
- package/xsd/types/cus0.xsd +32 -0
- package/xsd/types/cus1.xsd +30 -0
- package/xsd/types/cus2.xsd +30 -0
- package/xsd/types/dd25v.xsd +18 -0
- package/xsd/types/dd26v.xsd +22 -0
- package/xsd/types/dd27p.xsd +30 -0
- package/xsd/types/dd28v.xsd +23 -0
- package/xsd/types/dd30v.xsd +20 -0
- package/xsd/types/dd31v.xsd +15 -0
- package/xsd/types/dd32p.xsd +28 -0
- package/xsd/types/dd33v.xsd +22 -0
- package/xsd/types/dial.xsd +37 -0
- package/xsd/types/doct.xsd +41 -0
- package/xsd/types/docv.xsd +33 -0
- package/xsd/types/drul.xsd +17 -0
- package/xsd/types/dsys.xsd +41 -0
- package/xsd/types/enhc.xsd +15 -0
- package/xsd/types/enho.xsd +180 -0
- package/xsd/types/enhs.xsd +63 -0
- package/xsd/types/ensc.xsd +13 -0
- package/xsd/types/form.xsd +123 -0
- package/xsd/types/ftgl.xsd +16 -0
- package/xsd/types/http.xsd +32 -0
- package/xsd/types/iamu.xsd +18 -0
- package/xsd/types/iarp.xsd +22 -0
- package/xsd/types/iasp.xsd +22 -0
- package/xsd/types/iatu.xsd +14 -0
- package/xsd/types/iaxu.xsd +14 -0
- package/xsd/types/idoc.xsd +41 -0
- package/xsd/types/iext.xsd +31 -0
- package/xsd/types/iobj.xsd +58 -0
- package/xsd/types/jobd.xsd +13 -0
- package/xsd/types/nrob.xsd +49 -0
- package/xsd/types/nspc.xsd +20 -0
- package/xsd/types/oa2p.xsd +24 -0
- package/xsd/types/objsl.xsd +15 -0
- package/xsd/types/odso.xsd +42 -0
- package/xsd/types/otgr.xsd +44 -0
- package/xsd/types/para.xsd +17 -0
- package/xsd/types/pdts.xsd +25 -0
- package/xsd/types/pers.xsd +42 -0
- package/xsd/types/pinf.xsd +32 -0
- package/xsd/types/prag.xsd +11 -0
- package/xsd/types/samc.xsd +15 -0
- package/xsd/types/sapc.xsd +15 -0
- package/xsd/types/scp1.xsd +65 -0
- package/xsd/types/scvi.xsd +17 -0
- package/xsd/types/sfbf.xsd +32 -0
- package/xsd/types/sfbs.xsd +43 -0
- package/xsd/types/sfpf.xsd +32 -0
- package/xsd/types/sfsw.xsd +43 -0
- package/xsd/types/shi3.xsd +53 -0
- package/xsd/types/shi5.xsd +30 -0
- package/xsd/types/shi8.xsd +12 -0
- package/xsd/types/shma.xsd +20 -0
- package/xsd/types/sicf.xsd +102 -0
- package/xsd/types/sktd.xsd +24 -0
- package/xsd/types/smim.xsd +12 -0
- package/xsd/types/smtg.xsd +63 -0
- package/xsd/types/sod1.xsd +15 -0
- package/xsd/types/sod2.xsd +15 -0
- package/xsd/types/sots.xsd +40 -0
- package/xsd/types/splo.xsd +28 -0
- package/xsd/types/sprx.xsd +30 -0
- package/xsd/types/sqsc.xsd +71 -0
- package/xsd/types/srfc.xsd +25 -0
- package/xsd/types/ssst.xsd +23 -0
- package/xsd/types/stvi.xsd +16 -0
- package/xsd/types/styl.xsd +84 -0
- package/xsd/types/sucu.xsd +19 -0
- package/xsd/types/susc.xsd +16 -0
- package/xsd/types/sush.xsd +39 -0
- package/xsd/types/suso.xsd +29 -0
- package/xsd/types/sxci.xsd +19 -0
- package/xsd/types/sxsd.xsd +18 -0
- package/xsd/types/t100.xsd +20 -0
- package/xsd/types/t100a.xsd +13 -0
- package/xsd/types/tobj.xsd +55 -0
- package/xsd/types/tstc.xsd +15 -0
- package/xsd/types/tstcc.xsd +15 -0
- package/xsd/types/tstct.xsd +19 -0
- package/xsd/types/typepool.xsd +12 -0
- package/xsd/types/ucsa.xsd +15 -0
- package/xsd/types/udmo.xsd +37 -0
- package/xsd/types/vcls.xsd +36 -0
- package/xsd/types/w3xx.xsd +11 -0
- package/xsd/types/wdca.xsd +25 -0
- package/xsd/types/wdcc.xsd +14 -0
- package/xsd/types/wdya.xsd +18 -0
- package/xsd/types/webi.xsd +31 -0
- package/xsd/types/xinx.xsd +40 -0
- package/xsd/types/xslt.xsd +12 -0
- package/xsd/ucsa.xsd +26 -0
- package/xsd/udmo.xsd +26 -0
- package/xsd/ueno.xsd +25 -0
- package/xsd/vcls.xsd +26 -0
- package/xsd/view.xsd +41 -0
- package/xsd/w3ht.xsd +34 -0
- package/xsd/w3mi.xsd +34 -0
- package/xsd/wapa.xsd +25 -0
- package/xsd/wdca.xsd +25 -0
- package/xsd/wdcc.xsd +37 -0
- package/xsd/wdya.xsd +32 -0
- package/xsd/wdyn.xsd +25 -0
- package/xsd/webi.xsd +26 -0
- package/xsd/xinx.xsd +26 -0
- package/xsd/xslt.xsd +34 -0
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["_clas","_devc","_doma","_dtel","_intf","_prog","_fugr","_tabl","_ttyp","_bdef","_srvd","_srvb","getAbapGitHandler"],"sources":["../src/lib/handlers/xml-format.ts","../src/lib/handlers/base.ts","../src/lib/handlers/abapgit-schema.ts","../src/schemas/generated/schemas/clas.ts","../src/schemas/generated/schemas/devc.ts","../src/schemas/generated/schemas/doma.ts","../src/schemas/generated/schemas/dtel.ts","../src/schemas/generated/schemas/intf.ts","../src/schemas/generated/schemas/prog.ts","../src/schemas/generated/schemas/fugr.ts","../src/schemas/generated/schemas/tabl.ts","../src/schemas/generated/schemas/ttyp.ts","../src/schemas/generated/schemas/bdef.ts","../src/schemas/generated/schemas/srvd.ts","../src/schemas/generated/schemas/srvb.ts","../src/schemas/generated/index.ts","../src/lib/handlers/lang.ts","../src/lib/handlers/objects/clas.ts","../src/lib/handlers/objects/intf.ts","../src/lib/handlers/objects/devc.ts","../src/lib/handlers/objects/prog.ts","../src/lib/handlers/objects/fugr.ts","../src/lib/handlers/objects/doma.ts","../src/lib/handlers/objects/dtel.ts","../src/lib/handlers/cds-to-abapgit.ts","../src/lib/handlers/objects/tabl.ts","../src/lib/handlers/objects/ttyp.ts","../src/lib/handlers/objects/bdef.ts","../src/lib/handlers/objects/srvd.ts","../src/lib/handlers/objects/srvb.ts","../src/lib/folder-logic.ts","../src/lib/deserializer.ts","../src/lib/format-plugin.ts","../src/lib/serializer.ts","../src/lib/abapgit.ts","../src/lib/filename/adt-uri-to-path.ts","../src/index.ts"],"sourcesContent":["/**\n * XML formatting utilities for abapGit serialization.\n *\n * Centralizes XML post-processing that was previously duplicated\n * across base.ts, fugr.ts, tabl.ts, and roundtrip.ts.\n *\n * Uses indexOf-based parsing instead of regex to avoid\n * super-linear backtracking (SonarQube S5852).\n */\n\n/**\n * Extract `name=\"value\"` attribute pairs from an XML attribute string\n * using indexOf-based scanning (no regex).\n */\nfunction extractAttributes(content: string): string[] {\n const attrs: string[] = [];\n let i = 0;\n while (i < content.length) {\n // Skip whitespace\n while (\n i < content.length &&\n (content[i] === ' ' || content[i] === '\\n' || content[i] === '\\t')\n )\n i++;\n if (i >= content.length) break;\n\n // Find '=' for attribute name boundary\n const eqIdx = content.indexOf('=', i);\n if (eqIdx === -1) break;\n\n // Find opening quote\n const openQuote = content.indexOf('\"', eqIdx + 1);\n if (openQuote === -1) break;\n\n // Find closing quote\n const closeQuote = content.indexOf('\"', openQuote + 1);\n if (closeQuote === -1) break;\n\n attrs.push(content.slice(i, closeQuote + 1));\n i = closeQuote + 1;\n }\n return attrs;\n}\n\n/**\n * Format XML attributes on separate lines for better diff readability.\n *\n * Turns `<tag a=\"1\" b=\"2\">` into:\n * ```\n * <tag\n * a=\"1\"\n * b=\"2\"\n * >\n * ```\n *\n * Uses indexOf-based scanning to avoid regex backtracking (S5852).\n */\nexport function formatXmlAttributes(xml: string): string {\n let result = '';\n let pos = 0;\n\n while (pos < xml.length) {\n const openBracket = xml.indexOf('<', pos);\n if (openBracket === -1) {\n result += xml.slice(pos);\n break;\n }\n\n // Copy everything before '<'\n result += xml.slice(pos, openBracket);\n\n const closeBracket = xml.indexOf('>', openBracket);\n if (closeBracket === -1) {\n result += xml.slice(openBracket);\n break;\n }\n\n const tagContent = xml.slice(openBracket + 1, closeBracket);\n const spaceIdx = tagContent.indexOf(' ');\n\n // No attributes, or special tags (</, <!, <?)\n if (\n spaceIdx === -1 ||\n tagContent[0] === '/' ||\n tagContent[0] === '!' ||\n tagContent[0] === '?'\n ) {\n result += xml.slice(openBracket, closeBracket + 1);\n pos = closeBracket + 1;\n continue;\n }\n\n const tag = tagContent.slice(0, spaceIdx);\n const attrPart = tagContent.slice(spaceIdx + 1);\n const isSelfClosing = attrPart.trimEnd().endsWith('/');\n const attrContent = isSelfClosing\n ? attrPart.slice(0, attrPart.lastIndexOf('/'))\n : attrPart;\n\n const attrs = extractAttributes(attrContent);\n if (attrs.length === 0) {\n result += xml.slice(openBracket, closeBracket + 1);\n } else {\n const attrsJoined = attrs.map((a) => `\\n ${a}`).join('');\n const selfCloseMarker = isSelfClosing ? '/' : '';\n result += `<${tag}${attrsJoined}\\n${selfCloseMarker}>`;\n }\n pos = closeBracket + 1;\n }\n\n return result;\n}\n\n/**\n * Move `xmlns:asx` declaration from root `<abapGit>` to nested `<asx:abap>`.\n *\n * Uses indexOf-based approach instead of regex to avoid backtracking on\n * the `[\\s\\S]*?` pattern that SonarQube flags.\n */\nexport function moveNamespaceToAbap(xml: string): string {\n const nsDecl = ' xmlns:asx=\"http://www.sap.com/abapxml\"';\n const nsIdx = xml.indexOf(nsDecl);\n if (nsIdx === -1) return xml;\n\n // Verify the namespace is on the <abapGit root element\n const tagStart = xml.lastIndexOf('<abapGit', nsIdx);\n if (tagStart === -1) return xml;\n\n // Remove from root\n const stripped = xml.slice(0, nsIdx) + xml.slice(nsIdx + nsDecl.length);\n\n // Insert on <asx:abap element\n const asxTag = '<asx:abap';\n const asxIdx = stripped.indexOf(asxTag);\n if (asxIdx === -1) return stripped;\n\n return (\n stripped.slice(0, asxIdx + asxTag.length) +\n '\\n ' +\n nsDecl.trim() +\n stripped.slice(asxIdx + asxTag.length)\n );\n}\n\n/**\n * Apply standard abapGit XML formatting:\n * 1. Format attributes on separate lines\n * 2. Move xmlns:asx to asx:abap element\n */\nexport function formatAbapGitXml(xml: string): string {\n return moveNamespaceToAbap(formatXmlAttributes(xml));\n}\n","/**\n * Handler Factory for abapGit object serialization\n *\n * Provides `createHandler` factory for creating object handlers.\n * Handlers auto-register when created.\n */\n\nimport type { AdkObject, AdkKind } from '@abapify/adk';\nimport { getTypeForKind, getMainType } from '@abapify/adk';\nimport type {\n AbapGitSchema,\n InferAbapGitType,\n InferValuesType,\n} from './abapgit-schema';\nimport { formatAbapGitXml } from './xml-format';\n\n/**\n * Extract the data type (D) from an AdkObject<K, D>\n * This allows us to infer the payload type from the ADK class itself\n */\nexport type InferAdkData<T> =\n T extends AdkObject<infer _K, infer D> ? D : never;\n\n/**\n * ADK object class type\n * Used to pass ADK classes to createHandler\n *\n * We use `any[]` for constructor args since we only need the static `kind` property,\n * not to actually instantiate the class.\n */\n\nexport type AdkObjectClass<T extends AdkObject = AdkObject> = {\n new (...args: any[]): T;\n readonly kind: AdkKind;\n};\n\n// ============================================\n// Handler Types\n// ============================================\n\n/**\n * ABAP object type code (e.g., 'CLAS', 'INTF', 'DOMA')\n */\nexport type AbapObjectType = string;\n\n/**\n * Result of serializing a single file\n */\nexport interface SerializedFile {\n /** Relative path from object directory */\n path: string;\n /** File content */\n content: string;\n /** Optional encoding (default: utf-8) */\n encoding?: BufferEncoding;\n}\n\n/**\n * Handler interface for object serialization/deserialization\n *\n * @typeParam T - ADK object type\n * @typeParam TSchema - AbapGit schema type (provides type-safe values)\n */\nexport interface ObjectHandler<\n T extends AdkObject = AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n> {\n /** ABAP object type (e.g., 'CLAS', 'INTF') */\n readonly type: AbapObjectType;\n /** File extension for this type (e.g., 'clas', 'intf') */\n readonly fileExtension: string;\n /** Schema for parsing/building XML */\n readonly schema: TSchema;\n /** Map abapGit file suffix to source key */\n readonly suffixToSourceKey?: Record<string, string>;\n /** Serialize object to files (SAP → Git) */\n serialize(object: T): Promise<SerializedFile[]>;\n /**\n * Map abapGit values to ADK data (Git → SAP)\n * Return type includes name (required) plus any ADK data fields\n */\n fromAbapGit?(\n values: InferValuesType<TSchema>,\n ): Partial<InferAdkData<T>> & { name: string };\n\n /**\n * Set source files on ADK object during deserialization (Git → SAP)\n * Symmetric counterpart to getSources\n */\n setSources?(object: T, sources: Record<string, string>): void;\n}\n\n/**\n * Re-export AbapGitSchema types for handler definitions\n */\nexport type {\n AbapGitSchema,\n InferAbapGitType,\n InferValuesType,\n} from './abapgit-schema';\n\n// ============================================\n// Global Handler Registry\n// ============================================\n\nconst handlerRegistry = new Map<AbapObjectType, ObjectHandler>();\n\n/**\n * Get handler for object type\n *\n * Tries the full type first (e.g., 'TABL/DS'), then falls back to the\n * main type (e.g., 'CLAS/OC' → 'CLAS'). This matches ADK's resolveType()\n * behaviour and handles quickSearch results that return subtypes.\n */\nexport function getHandler(type: AbapObjectType): ObjectHandler | undefined {\n return handlerRegistry.get(type) ?? handlerRegistry.get(getMainType(type));\n}\n\n/**\n * Check if object type is supported\n *\n * Tries the full type first, then falls back to the main type.\n */\nexport function isSupported(type: AbapObjectType): boolean {\n return handlerRegistry.has(type) || handlerRegistry.has(getMainType(type));\n}\n\n/**\n * Get all supported object types\n */\nexport function getSupportedTypes(): AbapObjectType[] {\n return [...handlerRegistry.keys()];\n}\n\n// ============================================\n// Deserialization Context\n// ============================================\n\n/**\n * Payload for creating ADK objects from abapGit\n * Contains all data needed to construct an object (name, metadata, sources)\n */\nexport interface ObjectPayload {\n /** Object name */\n name: string;\n /** Object description */\n description?: string;\n /** Source files keyed by include type (e.g., { main: '...', testclasses: '...' }) */\n sources?: Record<string, string>;\n /** Additional type-specific data */\n [key: string]: unknown;\n}\n\n// ============================================\n// Handler Factory\n// ============================================\n\n/**\n * Handler definition passed to createHandler\n *\n * @typeParam T - ADK object type\n * @typeParam TSchema - The AbapGit schema (provides both full type and values type)\n */\nexport interface HandlerDefinition<\n T extends AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n> {\n /** AbapGit typed schema for XML generation */\n schema: TSchema;\n\n /** abapGit format version */\n version: string;\n\n /** Serializer class name (e.g., 'LCL_OBJECT_DEVC') */\n serializer: string;\n\n /** Serializer version */\n serializer_version: string;\n\n /**\n * Map ADK object to abapGit values (inner content only)\n * The base class wraps this in the full AbapGitType structure\n */\n toAbapGit(object: T): InferValuesType<TSchema>;\n\n /**\n * Map abapGit values to ADK data (optional)\n * Symmetric counterpart to toAbapGit - used for export (Git → SAP)\n *\n * @param values - Parsed abapGit values (same type as toAbapGit returns)\n * @returns Partial ADK data with name for deserialization\n */\n fromAbapGit?(\n values: InferValuesType<TSchema>,\n ): Partial<InferAdkData<T>> & { name: string };\n\n /**\n * Map abapGit file suffix to source key (for objects with multiple sources)\n * Used during deserialization to map file suffixes to source keys\n *\n * @example For CLAS: { 'locals_def': 'definitions', 'testclasses': 'testclasses' }\n */\n suffixToSourceKey?: Record<string, string>;\n\n /**\n * Custom filename for XML file (optional)\n * Default: `${objectName}.${type}.xml`\n *\n * @example 'package.devc.xml' for DEVC which doesn't use object name\n */\n xmlFileName?:\n | string\n | ((\n object: T,\n ctx: HandlerContext<T, InferAbapGitType<TSchema>>,\n ) => string);\n\n /**\n * Get source code from object (optional)\n * If provided, default serialize will create both .abap and .xml files\n *\n * @example getSource: (obj) => obj.getSource()\n */\n getSource?(object: T): Promise<string>;\n\n /**\n * Get multiple source files from object (optional)\n * For objects with multiple source files (e.g., CLAS with includes)\n * Returns array of { suffix?, content } or promises - resolved automatically\n *\n * @example getSources: (cls) => cls.includes.map((inc) => ({\n * suffix: SUFFIX_MAP[inc.includeType],\n * content: cls.getIncludeSource(inc.includeType),\n * }))\n */\n getSources?(\n object: T,\n ): Array<{ suffix?: string; content: string | Promise<string> }>;\n\n /**\n * Set source files on ADK object during deserialization (Git → SAP)\n * Symmetric counterpart to getSources\n *\n * @param object - ADK object to set sources on\n * @param sources - Source files keyed by source key (e.g., { main: '...', testclasses: '...' })\n *\n * @example setSources: (cls, sources) => {\n * if (sources.main) cls.setSource(sources.main);\n * if (sources.testclasses) cls.setIncludeSource('testclasses', sources.testclasses);\n * }\n */\n setSources?(object: T, sources: Record<string, string>): void;\n\n /**\n * Serialize object to files (optional)\n * Default behavior:\n * - If getSources provided: creates multiple .abap + .xml files\n * - If getSource provided: creates single .abap + .xml files\n * - Otherwise: creates only .xml file\n *\n * Override only for very custom serialization logic\n */\n serialize?(\n object: T,\n ctx: HandlerContext<T, InferAbapGitType<TSchema>>,\n ): Promise<SerializedFile[]>;\n}\n\n/**\n * Context passed to serialize function with helper utilities\n */\nexport interface HandlerContext<T extends AdkObject, _TData = unknown> {\n /** ABAP object type */\n readonly type: AbapObjectType;\n /** File extension (lowercase type) */\n readonly fileExtension: string;\n\n /** Get object name in lowercase */\n getObjectName(object: T): string;\n /** Get object data synchronously */\n getData(object: T): Record<string, unknown>;\n /** Resolve lazy content */\n resolveContent(content: unknown): Promise<string>;\n\n /** Convert to abapGit XML using schema */\n toAbapGitXml(object: T): string;\n\n /** Create a file entry */\n createFile(\n path: string,\n content: string,\n encoding?: BufferEncoding,\n ): SerializedFile;\n /** Create XML metadata file */\n createXmlFile(objectName: string, xmlContent: string): SerializedFile;\n /** Create ABAP source file */\n createAbapFile(\n objectName: string,\n content: string,\n suffix?: string,\n ): SerializedFile;\n}\n\n/**\n * Create an object handler from ADK class\n */\nexport function createHandler<\n T extends AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n>(\n adkClass: AdkObjectClass<T>,\n definition: HandlerDefinition<T, TSchema>,\n): ObjectHandler<T>;\n\n/**\n * Create an object handler from ABAP type string\n * Use this for object types without ADK class (e.g., DTEL, DOMA)\n */\nexport function createHandler<\n T extends AdkObject = AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n>(\n type: AbapObjectType,\n definition: HandlerDefinition<T, TSchema>,\n): ObjectHandler<T>;\n\n/**\n * Create an object handler\n *\n * @param adkClassOrType - ADK object class or ABAP type string\n * @param definition - Handler definition with schema, toAbapGit, serialize\n * @returns ObjectHandler that is auto-registered\n *\n * @example\n * ```typescript\n * // With ADK class (preferred)\n * import { AdkPackage } from '@abapify/adk';\n * export const packageHandler = createHandler(AdkPackage, { ... });\n *\n * // With ABAP type string (for objects without ADK class)\n * export const dataElementHandler = createHandler('DTEL', { ... });\n * ```\n */\nexport function createHandler<\n T extends AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n>(\n adkClassOrType: AdkObjectClass<T> | AbapObjectType,\n definition: HandlerDefinition<T, TSchema>,\n): ObjectHandler<T> {\n // Determine ABAP type\n let type: AbapObjectType;\n\n if (typeof adkClassOrType === 'string') {\n // Direct ABAP type string\n type = adkClassOrType;\n } else {\n // ADK class - derive from static kind\n const kind = adkClassOrType.kind;\n const derivedType = getTypeForKind(kind);\n if (!derivedType) {\n throw new Error(\n `Unknown ADK kind: ${kind}. Make sure the ADK class has a static 'kind' property.`,\n );\n }\n type = derivedType;\n }\n\n const fileExtension = getMainType(type).toLowerCase();\n\n // Create handler context with utilities\n const ctx: HandlerContext<T, InferAbapGitType<TSchema>> = {\n type,\n fileExtension,\n\n getObjectName(object: T): string {\n return object.name.toLowerCase();\n },\n\n getData(object: T): Record<string, unknown> {\n return object.dataSync as Record<string, unknown>;\n },\n\n async resolveContent(content: unknown): Promise<string> {\n if (!content) return '';\n if (typeof content === 'string') return content;\n if (typeof content === 'function') return await content();\n return '';\n },\n\n toAbapGitXml(object: T): string {\n // Get values from handler\n const values = definition.toAbapGit(object);\n\n // Construct full AbapGitType payload\n const fullPayload = {\n abap: {\n version: '1.0', // Explicit version attribute for asx:abap\n values,\n },\n version: definition.version,\n serializer: definition.serializer,\n serializer_version: definition.serializer_version,\n } as InferAbapGitType<TSchema>;\n\n // Build XML with pretty formatting for readability\n const xml = definition.schema.build(fullPayload, { pretty: true });\n\n return formatAbapGitXml(xml);\n },\n\n createFile(\n path: string,\n content: string,\n encoding?: BufferEncoding,\n ): SerializedFile {\n return { path, content, encoding };\n },\n\n createXmlFile(objectName: string, xmlContent: string): SerializedFile {\n return {\n path: `${objectName}.${fileExtension}.xml`,\n content: xmlContent,\n };\n },\n\n createAbapFile(\n objectName: string,\n content: string,\n suffix?: string,\n ): SerializedFile {\n const fileName = suffix\n ? `${objectName}.${fileExtension}.${suffix}.abap`\n : `${objectName}.${fileExtension}.abap`;\n return { path: fileName, content };\n },\n };\n\n // Default serialize\n const defaultSerialize = async (object: T): Promise<SerializedFile[]> => {\n const objectName = ctx.getObjectName(object);\n const files: SerializedFile[] = [];\n\n // Add source files\n if (definition.getSources) {\n // Multiple source files (e.g., CLAS with includes)\n // Resolve all promises in parallel\n const rawSources = definition.getSources(object);\n const sources = await Promise.all(\n rawSources.map(async ({ suffix, content }) => ({\n suffix,\n content: await content,\n })),\n );\n for (const { suffix, content } of sources) {\n if (content) {\n files.push(ctx.createAbapFile(objectName, content, suffix));\n }\n }\n } else if (definition.getSource) {\n // Single source file (e.g., INTF)\n const source = await definition.getSource(object);\n files.push(ctx.createAbapFile(objectName, source));\n }\n\n // Add XML metadata file\n const xmlContent = ctx.toAbapGitXml(object);\n let xmlFileName: string;\n if (definition.xmlFileName) {\n xmlFileName =\n typeof definition.xmlFileName === 'function'\n ? definition.xmlFileName(object, ctx)\n : definition.xmlFileName;\n } else {\n xmlFileName = `${objectName}.${fileExtension}.xml`;\n }\n files.push(ctx.createFile(xmlFileName, xmlContent));\n\n return files;\n };\n\n // Default fromAbapGit using definition.fromAbapGit if provided\n const defaultFromAbapGit = definition.fromAbapGit\n ? (\n values: InferValuesType<TSchema>,\n ): Partial<InferAdkData<T>> & { name: string } => {\n return definition.fromAbapGit!(values);\n }\n : undefined;\n\n // Create handler object with full type information\n const handler: ObjectHandler<T, TSchema> = {\n type,\n fileExtension,\n schema: definition.schema,\n suffixToSourceKey: definition.suffixToSourceKey,\n serialize: definition.serialize\n ? (object: T) => definition.serialize!(object, ctx)\n : defaultSerialize,\n fromAbapGit: defaultFromAbapGit,\n setSources: definition.setSources,\n };\n\n // Auto-register (cast to base type for registry storage)\n handlerRegistry.set(type, handler as ObjectHandler);\n\n return handler;\n}\n","/**\n * AbapGit Schema - extends TypedSchema with values type\n *\n * Provides both:\n * - _type: Full AbapGitType (for XML build/parse)\n * - _values: Inner values type (for handler mapping)\n */\n\nimport {\n typedSchema,\n type TypedSchema,\n type SchemaLike,\n} from '@abapify/ts-xsd';\n\n/**\n * AbapGit schema instance with both full type and values type\n *\n * @typeParam TFull - Full AbapGitType (root XML structure)\n * @typeParam TValues - Inner values type (e.g., DevcType)\n * @typeParam S - Raw schema literal type\n */\nexport interface AbapGitSchema<\n TFull,\n TValues,\n S extends SchemaLike = SchemaLike,\n> extends TypedSchema<TFull, S> {\n /** The inner values type - use with typeof for type extraction */\n readonly _values: TValues;\n}\n\n/**\n * Create an AbapGit typed schema wrapper from raw schema\n *\n * @param rawSchema - Raw schema literal (with `as const`)\n * @returns AbapGitSchema with both _type and _values\n *\n * @example\n * ```typescript\n * import _devc from './schemas/devc';\n *\n * const devc = abapGitSchema<DevcAbapGitType, DevcType>(_devc);\n *\n * // Access types:\n * type Full = typeof devc._type; // DevcAbapGitType\n * type Values = typeof devc._values; // DevcType\n * ```\n */\nexport function abapGitSchema<\n TFull,\n TValues,\n S extends SchemaLike = SchemaLike,\n>(rawSchema: S): AbapGitSchema<TFull, TValues, S> {\n const base = typedSchema<TFull, S>(rawSchema);\n return {\n _type: base._type as TFull,\n _values: null as unknown as TValues,\n schema: base.schema,\n parse: base.parse as (xml: string) => TFull,\n build: base.build as (\n data: TFull,\n options?: Parameters<typeof base.build>[1],\n ) => string,\n };\n}\n\n/** Extract the full AbapGit type from an AbapGitSchema */\nexport type InferAbapGitType<S> =\n S extends AbapGitSchema<infer T, unknown> ? T : unknown;\n\n/** Extract the values type from an AbapGitSchema */\nexport type InferValuesType<S> =\n S extends AbapGitSchema<unknown, infer V> ? V : unknown;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/clas.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"VSEOCLASS\",\n type: \"asx:VseoClassType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VseoClassType\",\n all: {\n element: [\n {\n name: \"CLSNAME\",\n type: \"xs:string\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CATEGORY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXPOSURE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSFINAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSABSTRCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSCCINCL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIXPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNICODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"WITH_UNIT_TESTS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DURATION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RISK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MSG_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFCLSNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHRM_ENABLED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/devc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DEVC\",\n type: \"asx:DevcType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DevcType\",\n all: {\n element: [\n {\n name: \"CTEXT\",\n type: \"xs:string\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/doma.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD01V\",\n type: \"asx:Dd01vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD07V_TAB\",\n type: \"asx:Dd07vTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd01vType\",\n all: {\n element: [\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOWERCASE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SIGNFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALEXI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ENTITYTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONVEXIT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMMASTER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd07vType\",\n all: {\n element: [\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMVALUE_L\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMVALUE_H\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd07vTabType\",\n sequence: {\n element: [\n {\n name: \"DD07V\",\n type: \"Dd07vType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/dtel.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD04V\",\n type: \"asx:Dd04vType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd04vType\",\n sequence: {\n element: [\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HEADLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRLEN1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRLEN2\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRLEN3\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REPTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRTEXT_S\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRTEXT_M\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRTEXT_L\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DTELMASTER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFKIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/intf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"VSEOINTERF\",\n type: \"asx:VseoInterfType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VseoInterfType\",\n all: {\n element: [\n {\n name: \"CLSNAME\",\n type: \"xs:string\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXPOSURE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNICODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/prog.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n name: \"abap\",\n type: \"ProgAbapType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n ],\n complexType: [\n {\n name: \"ProgValuesType\",\n all: {\n element: [\n {\n name: \"PROGDIR\",\n type: \"ProgdirType\",\n minOccurs: \"0\",\n },\n {\n name: \"TPOOL\",\n type: \"TpoolType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ProgAbapType\",\n sequence: {\n element: [\n {\n name: \"values\",\n type: \"ProgValuesType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"AbapValuesType\",\n sequence: {\n element: [\n {\n ref: \"asx:Schema\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"ProgdirType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SUBC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIXPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNICODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DTEFUNC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RLOAD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UCCHECK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TpoolItemType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n },\n {\n name: \"ENTRY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENGTH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TpoolType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"TpoolItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/fugr.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n name: \"abap\",\n type: \"FugrAbapType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n ],\n complexType: [\n {\n name: \"FugrValuesType\",\n all: {\n element: [\n {\n name: \"AREAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INCLUDES\",\n type: \"FugrIncludesType\",\n minOccurs: \"0\",\n },\n {\n name: \"FUNCTIONS\",\n type: \"FugrFunctionsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrAbapType\",\n sequence: {\n element: [\n {\n name: \"values\",\n type: \"FugrValuesType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"AbapValuesType\",\n sequence: {\n element: [\n {\n ref: \"asx:Schema\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"FugrParamType\",\n all: {\n element: [\n {\n name: \"PARAMETER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DBFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFAULT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OPTIONAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFERENCE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrTableParamType\",\n all: {\n element: [\n {\n name: \"PARAMETER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DBSTRUCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OPTIONAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrExceptionType\",\n all: {\n element: [\n {\n name: \"EXCEPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrDocParamType\",\n all: {\n element: [\n {\n name: \"PARAMETER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrImportType\",\n sequence: {\n element: [\n {\n name: \"RSIMP\",\n type: \"FugrParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrExportType\",\n sequence: {\n element: [\n {\n name: \"RSEXP\",\n type: \"FugrParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrChangingType\",\n sequence: {\n element: [\n {\n name: \"RSCHA\",\n type: \"FugrParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrTablesType\",\n sequence: {\n element: [\n {\n name: \"RSTBL\",\n type: \"FugrTableParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrExceptionsType\",\n sequence: {\n element: [\n {\n name: \"RSEXC\",\n type: \"FugrExceptionType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrDocumentationType\",\n sequence: {\n element: [\n {\n name: \"RSFDO\",\n type: \"FugrDocParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrFunctionItemType\",\n all: {\n element: [\n {\n name: \"FUNCNAME\",\n type: \"xs:string\",\n },\n {\n name: \"GLOBAL_FLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REMOTE_CALL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UPDATE_TASK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHORT_TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REMOTE_BASXML\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXCEPTION_CLASSES\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPORT\",\n type: \"FugrImportType\",\n minOccurs: \"0\",\n },\n {\n name: \"CHANGING\",\n type: \"FugrChangingType\",\n minOccurs: \"0\",\n },\n {\n name: \"EXPORT\",\n type: \"FugrExportType\",\n minOccurs: \"0\",\n },\n {\n name: \"TABLES\",\n type: \"FugrTablesType\",\n minOccurs: \"0\",\n },\n {\n name: \"EXCEPTION\",\n type: \"FugrExceptionsType\",\n minOccurs: \"0\",\n },\n {\n name: \"DOCUMENTATION\",\n type: \"FugrDocumentationType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrFunctionsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FugrFunctionItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrIncludesType\",\n sequence: {\n element: [\n {\n name: \"SOBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/tabl.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD02V\",\n type: \"asx:Dd02vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD09L\",\n type: \"asx:Dd09lType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD03P_TABLE\",\n type: \"asx:Dd03pTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"TABL_EXTRAS\",\n type: \"asx:TablExtrasType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd02vType\",\n sequence: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGDEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLIDEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SQLTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTERLANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BUFFERED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MATEFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONTFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPEXI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AUTHCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd09lType\",\n sequence: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABKAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABART\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BUFALLOW\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PUFFERUNG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCHFELDANZ\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROTOKOLL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPEESSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UESSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROESSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd03pType\",\n sequence: {\n element: [\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"POSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ADMINFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PRECFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NOTNULL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPORIGIN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONRFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd03pTableType\",\n sequence: {\n element: [\n {\n name: \"DD03P\",\n type: \"Dd03pType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"TddatType\",\n sequence: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VIEWGRANT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TVDIR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GENERICRANGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TablExtrasType\",\n sequence: {\n element: [\n {\n name: \"TDDAT\",\n type: \"TddatType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ttyp.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD40V\",\n type: \"asx:Dd40vType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd40vType\",\n all: {\n element: [\n {\n name: \"TYPENAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROWTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROWKIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACCESSMODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYDEF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYKIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GENERIC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPELEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFFDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/bdef.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n name: \"abap\",\n type: \"BdefAbapType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"BdefValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"BdefAbapType\",\n sequence: {\n element: [\n {\n name: \"values\",\n type: \"BdefValuesType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"AbapValuesType\",\n sequence: {\n element: [\n {\n ref: \"asx:Schema\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/srvd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n name: \"abap\",\n type: \"SrvdAbapType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SrvdValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SrvdAbapType\",\n sequence: {\n element: [\n {\n name: \"values\",\n type: \"SrvdValuesType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"AbapValuesType\",\n sequence: {\n element: [\n {\n ref: \"asx:Schema\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/srvb.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n name: \"abap\",\n type: \"SrvbAbapType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"BindingType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CATEGORY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SrvbValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"SkeyType\",\n minOccurs: \"0\",\n },\n {\n name: \"BINDING\",\n type: \"BindingType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SrvbAbapType\",\n sequence: {\n element: [\n {\n name: \"values\",\n type: \"SrvbValuesType\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n {\n name: \"AbapValuesType\",\n sequence: {\n element: [\n {\n ref: \"asx:Schema\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * AbapGit Typed Schemas\n * \n * Auto-generated by ts-xsd codegen - DO NOT EDIT\n * \n * Each schema provides:\n * - _type: Full AbapGitType (for XML build/parse)\n * - _values: Inner values type (for handler mapping)\n * - parse(xml) → fully typed object\n * - build(data) → XML string\n * - schema → raw schema literal\n */\n\nimport { abapGitSchema } from '../../lib/handlers/abapgit-schema';\n\n// Raw schemas\nimport _clas from './schemas/clas';\nimport _devc from './schemas/devc';\nimport _doma from './schemas/doma';\nimport _dtel from './schemas/dtel';\nimport _intf from './schemas/intf';\nimport _prog from './schemas/prog';\nimport _fugr from './schemas/fugr';\nimport _tabl from './schemas/tabl';\nimport _ttyp from './schemas/ttyp';\nimport _bdef from './schemas/bdef';\nimport _srvd from './schemas/srvd';\nimport _srvb from './schemas/srvb';\n\n// Full AbapGit types - using flattened root types\n// Note: Generated types may be unions, we import the raw schema type\nimport type { ClasSchema as _ClasSchema } from './types/clas';\nimport type { DevcSchema as _DevcSchema } from './types/devc';\nimport type { DomaSchema as _DomaSchema } from './types/doma';\nimport type { DtelSchema as _DtelSchema } from './types/dtel';\nimport type { IntfSchema as _IntfSchema } from './types/intf';\nimport type { ProgSchema as _ProgSchema } from './types/prog';\nimport type { FugrSchema as _FugrSchema } from './types/fugr';\nimport type { TablSchema as _TablSchema } from './types/tabl';\nimport type { TtypSchema as _TtypSchema } from './types/ttyp';\nimport type { BdefSchema as _BdefSchema } from './types/bdef';\nimport type { SrvdSchema as _SrvdSchema } from './types/srvd';\nimport type { SrvbSchema as _SrvbSchema } from './types/srvb';\n\n// Extract the abapGit variant from union types (generated types may be unions)\ntype ClasAbapGitType = Extract<_ClasSchema, { abapGit: unknown }>;\ntype DevcAbapGitType = Extract<_DevcSchema, { abapGit: unknown }>;\ntype DomaAbapGitType = Extract<_DomaSchema, { abapGit: unknown }>;\ntype DtelAbapGitType = Extract<_DtelSchema, { abapGit: unknown }>;\ntype IntfAbapGitType = Extract<_IntfSchema, { abapGit: unknown }>;\ntype ProgAbapGitType = Extract<_ProgSchema, { abapGit: unknown }>;\ntype FugrAbapGitType = Extract<_FugrSchema, { abapGit: unknown }>;\ntype TablAbapGitType = Extract<_TablSchema, { abapGit: unknown }>;\ntype TtypAbapGitType = Extract<_TtypSchema, { abapGit: unknown }>;\ntype BdefAbapGitType = Extract<_BdefSchema, { abapGit: unknown }>;\ntype SrvdAbapGitType = Extract<_SrvdSchema, { abapGit: unknown }>;\ntype SrvbAbapGitType = Extract<_SrvbSchema, { abapGit: unknown }>;\n\n// AbapGit schema instances - using flattened types with values extracted from abapGit.abap.values\nexport const clas = abapGitSchema<ClasAbapGitType, ClasAbapGitType['abapGit']['abap']['values']>(_clas);\nexport const devc = abapGitSchema<DevcAbapGitType, DevcAbapGitType['abapGit']['abap']['values']>(_devc);\nexport const doma = abapGitSchema<DomaAbapGitType, DomaAbapGitType['abapGit']['abap']['values']>(_doma);\nexport const dtel = abapGitSchema<DtelAbapGitType, DtelAbapGitType['abapGit']['abap']['values']>(_dtel);\nexport const intf = abapGitSchema<IntfAbapGitType, IntfAbapGitType['abapGit']['abap']['values']>(_intf);\nexport const prog = abapGitSchema<ProgAbapGitType, ProgAbapGitType['abapGit']['abap']['values']>(_prog);\nexport const fugr = abapGitSchema<FugrAbapGitType, FugrAbapGitType['abapGit']['abap']['values']>(_fugr);\nexport const tabl = abapGitSchema<TablAbapGitType, TablAbapGitType['abapGit']['abap']['values']>(_tabl);\nexport const ttyp = abapGitSchema<TtypAbapGitType, TtypAbapGitType['abapGit']['abap']['values']>(_ttyp);\nexport const bdef = abapGitSchema<BdefAbapGitType, BdefAbapGitType['abapGit']['abap']['values']>(_bdef);\nexport const srvd = abapGitSchema<SrvdAbapGitType, SrvdAbapGitType['abapGit']['abap']['values']>(_srvd);\nexport const srvb = abapGitSchema<SrvbAbapGitType, SrvbAbapGitType['abapGit']['abap']['values']>(_srvb);\n\n// Re-export types and utilities\nexport { abapGitSchema, type AbapGitSchema, type InferAbapGitType, type InferValuesType } from '../../lib/handlers/abapgit-schema';\n","/**\n * SAP 1-character language code ↔ ISO 639-1 mapping\n *\n * abapGit stores SAP internal 1-char codes (e.g. \"E\" for English).\n * SAP ADT REST API expects ISO 639-1 codes (e.g. \"EN\").\n */\n\nconst SAP_TO_ISO: Record<string, string> = {\n E: 'EN', // English\n D: 'DE', // German\n F: 'FR', // French\n I: 'IT', // Italian\n S: 'ES', // Spanish\n P: 'PT', // Portuguese\n J: 'JA', // Japanese\n K: 'KO', // Korean\n '1': 'ZH', // Chinese\n W: 'RU', // Russian\n T: 'TR', // Turkish\n N: 'NL', // Dutch\n H: 'HU', // Hungarian\n L: 'PL', // Polish\n Q: 'CS', // Czech\n R: 'SK', // Slovak\n U: 'SV', // Swedish\n V: 'DA', // Danish\n Y: 'FI', // Finnish\n X: 'NO', // Norwegian\n G: 'EL', // Greek\n B: 'HE', // Hebrew\n A: 'AR', // Arabic\n '3': 'TH', // Thai\n M: 'UK', // Ukrainian\n '6': 'HR', // Croatian\n O: 'SL', // Slovenian\n '7': 'BG', // Bulgarian\n '8': 'SR', // Serbian\n C: 'RO', // Romanian\n};\n\nconst ISO_TO_SAP: Record<string, string> = Object.fromEntries(\n Object.entries(SAP_TO_ISO).map(([k, v]) => [v, k]),\n);\n\n/**\n * Convert SAP 1-char language code to ISO 639-1.\n * Returns the input uppercased if no mapping exists (may already be ISO).\n */\nexport function sapLangToIso(sapLang: string | undefined): string {\n if (!sapLang) return 'EN';\n const upper = sapLang.toUpperCase();\n // If it's already 2 chars, assume ISO\n if (upper.length >= 2) return upper;\n return SAP_TO_ISO[upper] ?? upper;\n}\n\n/**\n * Convert ISO 639-1 language code to SAP 1-char code.\n * Returns \"E\" (English) if no mapping exists.\n */\nexport function isoToSapLang(isoLang: string | undefined): string {\n if (!isoLang) return 'E';\n const upper = isoLang.toUpperCase();\n // If it's already 1 char, assume SAP code\n if (upper.length === 1) return upper;\n return ISO_TO_SAP[upper] ?? 'E';\n}\n\n// ============================================\n// ABAP Language Version mapping\n// ============================================\n\n/**\n * abapGit numeric code → ADT API string value\n *\n * abapGit serializes ABAP_LANGUAGE_VERSION as a numeric string (e.g. \"5\").\n * SAP ADT REST API expects descriptive strings (e.g. \"cloudDevelopment\").\n */\nconst ABAP_LANG_VER_TO_ADT: Record<string, string> = {\n '2': 'keyUser',\n '5': 'cloudDevelopment',\n};\nconst ABAP_LANG_VER_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(ABAP_LANG_VER_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * Convert abapGit ABAP_LANGUAGE_VERSION code to ADT API value.\n * Returns undefined if not set or standard ABAP.\n * Passes through values that are already in ADT format (e.g. \"cloudDevelopment\").\n */\nexport function abapLangVerToAdt(\n abapGitCode: string | undefined,\n): string | undefined {\n if (!abapGitCode) return undefined;\n return ABAP_LANG_VER_TO_ADT[abapGitCode] ?? abapGitCode;\n}\n\n/**\n * Convert ADT API abapLanguageVersion to abapGit ABAP_LANGUAGE_VERSION code.\n * Returns undefined if not set or standard ABAP (default — should not be emitted).\n */\nexport function abapLangVerFromAdt(\n adtValue: string | undefined,\n): string | undefined {\n if (!adtValue) return undefined;\n // Standard ABAP is the default — omit from abapGit XML\n if (adtValue === 'standard' || adtValue === 'X') return undefined;\n return ABAP_LANG_VER_FROM_ADT[adtValue] ?? adtValue;\n}\n","/**\n * Class (CLAS) object handler for abapGit format\n */\n\nimport { AdkClass, type ClassIncludeType } from '../adk';\nimport { clas } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport {\n sapLangToIso,\n isoToSapLang,\n abapLangVerToAdt,\n abapLangVerFromAdt,\n} from '../lang';\n\n/**\n * Map ADK ClassIncludeType to abapGit file suffix convention\n * Used for serialization (SAP → Git)\n */\nexport const ABAPGIT_SUFFIX: Record<ClassIncludeType, string | undefined> = {\n main: undefined, // main has no suffix\n definitions: 'locals_def',\n implementations: 'locals_imp',\n localtypes: 'locals_types',\n macros: 'macros',\n testclasses: 'testclasses',\n};\n\n/**\n * Reverse mapping: abapGit file suffix to ADK source key\n * Derived from ABAPGIT_SUFFIX to avoid duplication\n */\nconst SUFFIX_TO_SOURCE_KEY = Object.fromEntries(\n Object.entries(ABAPGIT_SUFFIX)\n .filter(([, suffix]) => suffix !== undefined)\n .map(([key, suffix]) => [suffix, key]),\n) as Record<string, ClassIncludeType>;\n\n/**\n * Map ADT category enum → abapGit numeric code\n * SAP ADT returns string names, abapGit uses numeric codes from SEOCLASSDF-CATEGORY\n */\nconst CATEGORY_FROM_ADT: Record<string, string> = {\n generalObjectType: '00',\n exitClass: '01',\n testClass: '02',\n areaClass: '03',\n factoryClass: '04',\n persistentClass: '30',\n exceptionClass: '40',\n bspClass: '60',\n staticTypedLcpClass: '70',\n behaviorPool: '80',\n rfcProxyClass: '90',\n entityEventHandler: '100',\n communicationConnectionClass: '110',\n};\n\n/**\n * Map visibility to EXPOSURE code (ADK → abapGit)\n */\nconst VISIBILITY_TO_EXPOSURE: Record<string, string> = {\n private: '0',\n protected: '1',\n public: '2',\n};\n\n/**\n * Reverse mapping: EXPOSURE code to visibility (abapGit → ADK)\n */\nconst EXPOSURE_TO_VISIBILITY = Object.fromEntries(\n Object.entries(VISIBILITY_TO_EXPOSURE).map(([k, v]) => [v, k]),\n) as Record<string, 'private' | 'protected' | 'public'>;\n\nexport const classHandler = createHandler(AdkClass, {\n schema: clas,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CLAS',\n serializer_version: 'v1.0.0',\n\n // Reverse mapping for deserialization (Git → SAP)\n suffixToSourceKey: SUFFIX_TO_SOURCE_KEY,\n\n toAbapGit: (cls) => {\n const data = cls.dataSync;\n const includes = data.include ?? [];\n const hasTestClasses =\n includes.some((inc) => String(inc.includeType) === 'testclasses') ||\n (data as any).hasTests === true ||\n (data as any).withUnitTests === true;\n\n // Map ADT category enum to abapGit numeric code, omit default (00)\n const categoryCode =\n CATEGORY_FROM_ADT[data.category ?? ''] ?? data.category ?? '00';\n\n // Map visibility to EXPOSURE code, omit default (2 = public)\n const exposureCode =\n VISIBILITY_TO_EXPOSURE[data.visibility ?? 'public'] ?? '2';\n\n return {\n VSEOCLASS: {\n // Required\n CLSNAME: cls.name ?? '',\n\n // Basic metadata\n LANGU: isoToSapLang(data.language),\n DESCRIPT: data.description ?? '',\n STATE: '1', // Active\n\n // Class attributes — omit defaults (abapGit convention)\n CATEGORY: categoryCode !== '00' ? categoryCode : undefined,\n EXPOSURE: exposureCode !== '2' ? exposureCode : undefined,\n CLSFINAL: data.final ? 'X' : undefined,\n CLSABSTRCT: data.abstract ? 'X' : undefined,\n SHRM_ENABLED: data.sharedMemoryEnabled ? 'X' : undefined,\n\n // Source attributes\n CLSCCINCL: 'X', // Class constructor include\n FIXPT: data.fixPointArithmetic ? 'X' : undefined,\n UNICODE: 'X', // Always true on modern SAP systems\n\n // References\n REFCLSNAME: data.superClassRef?.name,\n MSG_ID: data.messageClassRef?.name,\n\n // ABAP language version\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(data.abapLanguageVersion),\n\n // Test classes flag\n ...(hasTestClasses ? { WITH_UNIT_TESTS: 'X' } : {}),\n },\n };\n },\n\n getSources: (cls) => {\n const includes = cls.dataSync.include ?? [];\n return includes.map((inc) => ({\n suffix:\n ABAPGIT_SUFFIX[String(inc.includeType ?? 'main') as ClassIncludeType],\n content: cls.getIncludeSource(\n String(inc.includeType ?? 'main') as ClassIncludeType,\n ),\n }));\n },\n\n // Git → SAP: Map abapGit values to ADK data (type inferred from AdkClass)\n fromAbapGit: ({ VSEOCLASS }) => ({\n // Required - uppercase for SAP\n name: (VSEOCLASS?.CLSNAME ?? '').toUpperCase(),\n type: 'CLAS/OC', // ADT object type\n\n // Basic metadata\n description: VSEOCLASS?.DESCRIPT,\n language: sapLangToIso(VSEOCLASS?.LANGU),\n masterLanguage: sapLangToIso(VSEOCLASS?.LANGU),\n\n // Class attributes\n category: VSEOCLASS?.CATEGORY,\n final: VSEOCLASS?.CLSFINAL === 'X',\n abstract: VSEOCLASS?.CLSABSTRCT === 'X',\n visibility: EXPOSURE_TO_VISIBILITY[VSEOCLASS?.EXPOSURE ?? '2'] ?? 'public',\n sharedMemoryEnabled: VSEOCLASS?.SHRM_ENABLED === 'X',\n\n // Source attributes\n fixPointArithmetic: VSEOCLASS?.FIXPT === 'X',\n activeUnicodeCheck: VSEOCLASS?.UNICODE === 'X',\n\n // Test classes flag (preserved for roundtrip when includes are not available)\n withUnitTests: VSEOCLASS?.WITH_UNIT_TESTS === 'X',\n\n // References (name only - URI resolved by ADK)\n superClassRef: VSEOCLASS?.REFCLSNAME\n ? { name: VSEOCLASS.REFCLSNAME }\n : undefined,\n messageClassRef: VSEOCLASS?.MSG_ID ? { name: VSEOCLASS.MSG_ID } : undefined,\n\n // ABAP language version\n abapLanguageVersion: abapLangVerToAdt(VSEOCLASS?.ABAP_LANGUAGE_VERSION),\n }),\n\n // Git → SAP: Set source files on ADK object (symmetric with getSources)\n // Stores sources as pending for later deploy via ADT\n setSources: (cls, sources) => {\n // Store all sources as pending (will be saved during deploy)\n (\n cls as unknown as { _pendingSources: Record<string, string> }\n )._pendingSources = sources;\n // Also set main source shortcut for simple access\n if (sources.main) {\n (cls as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * Interface (INTF) object handler for abapGit format\n */\n\nimport { AdkInterface } from '../adk';\nimport { intf } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { sapLangToIso, isoToSapLang, abapLangVerToAdt } from '../lang';\n\nexport const interfaceHandler = createHandler(AdkInterface, {\n schema: intf,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_INTF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n VSEOINTERF: {\n CLSNAME: obj.name ?? '',\n LANGU: isoToSapLang(obj.dataSync?.language),\n DESCRIPT: obj.description ?? '',\n EXPOSURE: '2', // 2 = Public\n STATE: '1', // 1 = Active\n UNICODE: 'X',\n },\n }),\n\n getSource: (obj) => obj.getSource(),\n\n // Git → SAP: Map abapGit values to ADK data (type inferred from AdkInterface)\n fromAbapGit: ({ VSEOINTERF }) => ({\n name: (VSEOINTERF?.CLSNAME ?? '').toUpperCase(),\n type: 'INTF/OI', // ADT object type\n description: VSEOINTERF?.DESCRIPT,\n language: sapLangToIso(VSEOINTERF?.LANGU),\n masterLanguage: sapLangToIso(VSEOINTERF?.LANGU),\n abapLanguageVersion: abapLangVerToAdt(VSEOINTERF?.ABAP_LANGUAGE_VERSION),\n }),\n\n // Git → SAP: Set source files on ADK object (symmetric with getSource)\n // Stores sources as pending for later deploy via ADT\n setSources: (intf, sources) => {\n if (sources.main) {\n (intf as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * Package (DEVC) object handler for abapGit format\n */\n\nimport { AdkPackage } from '../adk';\nimport { devc } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\n/**\n * Package handler for abapGit serialization\n *\n * Note: Packages in abapGit use \"package.devc.xml\" as filename,\n * not \"$packagename.devc.xml\"\n */\nexport const packageHandler = createHandler(AdkPackage, {\n schema: devc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DEVC',\n serializer_version: 'v1.0.0',\n\n // Packages use fixed filename, not object name\n xmlFileName: 'package.devc.xml',\n\n // Only return the values - base class wraps in full AbapGitType\n toAbapGit: (pkg) => ({\n DEVC: {\n // Note: DEVCLASS is not included in abapGit package.devc.xml files (only CTEXT)\n CTEXT: pkg.description ?? '',\n },\n }),\n\n // Git → SAP: Map abapGit values to ADK data (type inferred from AdkPackage)\n // Note: DEVC doesn't have DEVCLASS in abapGit XML, name comes from filename\n fromAbapGit: ({ DEVC }) => ({\n name: '', // Package name must be set by deserializer from filename\n description: DEVC?.CTEXT,\n }),\n // Note: DEVC has no source files, so no setSources needed\n});\n","/**\n * Program (PROG) object handler for abapGit format\n */\n\nimport { AdkProgram } from '../adk';\nimport { prog } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\nexport const programHandler = createHandler(AdkProgram, {\n schema: prog,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PROG',\n serializer_version: 'v1.0.0',\n\n // SAP → Git: Map ADK object to abapGit values\n toAbapGit: (obj) => ({\n PROGDIR: {\n NAME: obj.name ?? '',\n STATE: 'A',\n SUBC: '1',\n FIXPT: 'X',\n UNICODE: 'X',\n },\n }),\n\n // Single source file\n getSource: (obj) => obj.getSource(),\n\n // Git → SAP: Map abapGit values to ADK data\n // Returns data matching AbapProgramSchema structure\n fromAbapGit: ({ PROGDIR, TPOOL }) => {\n // Extract description from TPOOL (text pool) if available\n // TPOOL.item can be a single object or an array depending on XML parser\n const rawItems = TPOOL?.item ?? [];\n const items = Array.isArray(rawItems) ? rawItems : [rawItems];\n const descriptionEntry = items.find((t: any) => t.ID === 'R');\n\n // SUBC can be parsed as number or string depending on XML parser\n const subc = String(PROGDIR?.SUBC ?? '');\n\n return {\n name: (PROGDIR?.NAME ?? '').toUpperCase(),\n type: 'PROG/P',\n description: descriptionEntry?.ENTRY ?? 'Program',\n fixPointArithmetic: PROGDIR?.FIXPT === 'X',\n activeUnicodeCheck: PROGDIR?.UNICODE === 'X',\n programType: subc === '1' ? 'executableProgram' : 'subroutinePool',\n };\n },\n\n // Git → SAP: Set source files on ADK object\n // Note: `_pendingSource` is not declared on the public ADK interface —\n // it is an implementation detail for deferred source saving.\n // The `as unknown as` double cast is the established pattern in this codebase.\n setSources: (obj, sources) => {\n if (sources.main) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * Function Group (FUGR) object handler for abapGit format\n *\n * FUGR is a compound object — abapGit serializes it as multiple files:\n * {name}.fugr.xml — Main metadata (AREAT + INCLUDES + FUNCTIONS)\n * {name}.fugr.l{name}top.abap — TOP-include source (editable)\n * {name}.fugr.l{name}top.xml — TOP-include PROGDIR metadata\n * {name}.fugr.sapl{name}.abap — Main program source (system-generated)\n * {name}.fugr.sapl{name}.xml — Main program PROGDIR metadata\n * {name}.fugr.{funcname}.abap — Function module source (per FM)\n *\n * Note: FM metadata is stored INSIDE the main XML under <FUNCTIONS>,\n * NOT in separate per-FM XML files (that's how abapGit works).\n */\n\nimport { AdkFunctionGroup } from '../adk';\nimport { fugr } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { formatAbapGitXml } from '../xml-format';\n\n/**\n * Map ADT processingType to abapGit REMOTE_CALL flag\n */\nfunction processingTypeToRemoteCall(\n processingType?: string,\n): string | undefined {\n switch (processingType) {\n case 'rfc':\n return 'R';\n case 'update':\n return undefined; // UPDATE_TASK handles this\n default:\n return undefined;\n }\n}\n\n/**\n * Map abapGit REMOTE_CALL flag to ADT processingType\n */\nfunction remoteCallToProcessingType(\n remoteCall?: string,\n updateTask?: string,\n): string {\n if (remoteCall === 'R') return 'rfc';\n if (updateTask && updateTask !== '' && updateTask !== ' ') return 'update';\n return 'normal';\n}\n\nexport const functionGroupHandler = createHandler(AdkFunctionGroup, {\n schema: fugr,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_FUGR',\n serializer_version: 'v1.0.0',\n\n // SAP → Git: Map ADK object to abapGit values\n // Note: FUNCTIONS are added dynamically in the custom serialize method\n toAbapGit: (obj) => {\n const name = obj.name.toUpperCase();\n return {\n AREAT: obj.description ?? '',\n INCLUDES: {\n SOBJ_NAME: [`L${name}TOP`, `SAPL${name}`],\n },\n };\n },\n\n // Custom serialize: generate the full multi-file structure including FMs\n serialize: async (obj, ctx) => {\n const objectName = ctx.getObjectName(obj); // lowercase\n const nameUpper = obj.name.toUpperCase();\n const files = [];\n\n // Discover child function modules via object structure\n const fmItems = await discoverFunctionModules(obj);\n\n // Build FUNCTIONS array for main XML\n const functions = await serializeFunctions(obj, fmItems);\n\n // 1. Main XML metadata (AREAT + INCLUDES + FUNCTIONS)\n // Build values manually to include FUNCTIONS\n const values: Record<string, unknown> = {\n AREAT: obj.description ?? '',\n INCLUDES: {\n SOBJ_NAME: [`L${nameUpper}TOP`, `SAPL${nameUpper}`],\n },\n };\n if (functions.length > 0) {\n values.FUNCTIONS = { item: functions };\n }\n\n // Build full payload and generate XML via schema\n const fullPayload = {\n abapGit: {\n abap: { version: '1.0', values },\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_FUGR',\n serializer_version: 'v1.0.0',\n },\n };\n let xmlContent = fugr.build(fullPayload, { pretty: true });\n\n xmlContent = formatAbapGitXml(xmlContent);\n\n files.push(ctx.createFile(`${objectName}.fugr.xml`, xmlContent));\n\n // 2. TOP-include source — the editable source from ADT\n try {\n const topSource = await obj.getSource();\n if (topSource) {\n files.push(\n ctx.createFile(\n `${objectName}.fugr.l${objectName}top.abap`,\n topSource,\n ),\n );\n }\n } catch {\n // Source not available — skip\n }\n\n // 3. TOP-include PROGDIR metadata (best-effort defaults)\n const data = ctx.getData(obj);\n const fixpt = data.fixPointArithmetic ? 'X' : '';\n files.push(\n ctx.createFile(\n `${objectName}.fugr.l${objectName}top.xml`,\n buildProgdirXml(`L${nameUpper}TOP`, 'I', fixpt),\n ),\n );\n\n // 4. Main program source (system-generated INCLUDE template)\n files.push(\n ctx.createFile(\n `${objectName}.fugr.sapl${objectName}.abap`,\n buildMainProgramSource(nameUpper),\n ),\n // 5. Main program PROGDIR metadata\n ctx.createFile(\n `${objectName}.fugr.sapl${objectName}.xml`,\n buildProgdirXml(`SAPL${nameUpper}`, 'F', fixpt),\n ),\n );\n\n // 6. Function module source files (one per FM)\n for (const fm of fmItems) {\n const funcName = fm.name.toLowerCase();\n try {\n const source =\n await obj.client.adt.functions.groups.fmodules.source.main.get(\n obj.name,\n fm.name,\n );\n if (source) {\n files.push(\n ctx.createFile(`${objectName}.fugr.${funcName}.abap`, source),\n );\n }\n } catch {\n // Source not available — skip\n }\n }\n\n return files;\n },\n\n // Git → SAP: Map abapGit values to ADK data\n fromAbapGit: ({ AREAT, FUNCTIONS }) => ({\n name: '', // Resolved from filename by deserializer\n type: 'FUGR/F',\n description: AREAT,\n language: 'EN',\n masterLanguage: 'EN',\n // Store FUNCTIONS metadata for the deserializer to extract child FMs\n _functions: FUNCTIONS,\n }),\n\n // Git → SAP: Set source files on ADK object\n // FUGR sources arrive with dynamic suffixes like l{name}top and sapl{name}.\n // The TOP-include (l{name}top) is the main editable source.\n // FM sources arrive with the FM name as suffix key.\n setSources: (obj, sources) => {\n const name = obj.name.toLowerCase();\n // Find the TOP-include source — this is the editable source for the function group\n const topKey = `l${name}top`;\n const mainSource = sources.main ?? sources[topKey];\n if (mainSource) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n mainSource;\n }\n\n // Collect FM sources — these are sources where the suffix is NOT an include name\n const fmSources: Record<string, string> = {};\n for (const [suffix, content] of Object.entries(sources)) {\n if (\n suffix === 'main' ||\n suffix === topKey ||\n suffix.startsWith(`l${name}`) ||\n suffix.startsWith(`sapl${name}`)\n ) {\n continue; // Skip FUGR includes\n }\n // This is an FM source — key is the function name (lowercase)\n fmSources[suffix] = content;\n }\n\n // Store FM sources on the object for the deserializer to extract later\n if (Object.keys(fmSources).length > 0) {\n (\n obj as unknown as { _pendingFmSources: Record<string, string> }\n )._pendingFmSources = fmSources;\n }\n // Note: sapl{name} (main program) is system-generated and not deployed via ADT\n },\n});\n\n// ============================================\n// Serialization helpers\n// ============================================\n\n/**\n * Minimal FM descriptor discovered from object structure\n */\ninterface FmDescriptor {\n name: string;\n type?: string;\n}\n\n/**\n * Discover child function modules via object structure endpoint.\n * Falls back to empty list if the endpoint is unavailable.\n */\nasync function discoverFunctionModules(\n obj: InstanceType<typeof AdkFunctionGroup>,\n): Promise<FmDescriptor[]> {\n try {\n const response = await obj.client.adt.functions.groups.objectstructure(\n obj.name,\n );\n\n // Parse object structure XML to extract FM entries\n // The response contains <objectStructureElement> items with type=\"FUGR/FF\"\n const responseStr = String(response);\n const fmNames: FmDescriptor[] = [];\n const regex = /type=\"FUGR\\/FF\"[^>]*adtcore:name=\"([^\"]+)\"/g;\n let match;\n while ((match = regex.exec(responseStr)) !== null) {\n fmNames.push({ name: match[1] });\n }\n\n // Also try alternate attribute order\n const regex2 = /adtcore:name=\"([^\"]+)\"[^>]*type=\"FUGR\\/FF\"/g;\n while ((match = regex2.exec(responseStr)) !== null) {\n if (!fmNames.some((f) => f.name === match![1])) {\n fmNames.push({ name: match[1] });\n }\n }\n\n return fmNames;\n } catch {\n return [];\n }\n}\n\n/**\n * Serialize function module metadata into abapGit FUNCTIONS format.\n * Fetches each FM's metadata via the ADT fmodules contract.\n */\nasync function serializeFunctions(\n obj: InstanceType<typeof AdkFunctionGroup>,\n fmItems: FmDescriptor[],\n): Promise<Record<string, unknown>[]> {\n const functions: Record<string, unknown>[] = [];\n\n for (const fm of fmItems) {\n try {\n const response = await obj.client.adt.functions.groups.fmodules.get(\n obj.name,\n fm.name,\n );\n const fmData = (response as Record<string, unknown>)\n ?.abapFunctionModule as Record<string, unknown> | undefined;\n if (!fmData) continue;\n\n // Map ADT metadata to abapGit FUNCTIONS format\n const item: Record<string, unknown> = {\n FUNCNAME: fm.name.toUpperCase(),\n SHORT_TEXT: fmData.description ?? '',\n };\n\n // Map processing type flags\n const remoteCall = processingTypeToRemoteCall(\n fmData.processingType as string | undefined,\n );\n if (remoteCall) item.REMOTE_CALL = remoteCall;\n if (fmData.basXMLEnabled) item.REMOTE_BASXML = 'X';\n\n functions.push(item);\n } catch {\n // FM metadata not available — add minimal entry\n functions.push({ FUNCNAME: fm.name.toUpperCase() });\n }\n }\n\n return functions;\n}\n\n// ============================================\n// Exported helpers (used by deserializer)\n// ============================================\n\n/**\n * Extract function module descriptors from parsed abapGit FUNCTIONS data.\n * Used by the deserializer to create child AdkFunctionModule objects.\n */\nexport interface FugrFunctionDescriptor {\n funcName: string;\n shortText?: string;\n processingType: string;\n basXMLEnabled: boolean;\n}\n\nexport function extractFunctionDescriptors(\n functions: unknown,\n): FugrFunctionDescriptor[] {\n if (!functions) return [];\n\n // Handle both { item: [...] } and direct array forms\n const items = Array.isArray(functions)\n ? functions\n : Array.isArray((functions as Record<string, unknown>)?.item)\n ? ((functions as Record<string, unknown>).item as Record<\n string,\n unknown\n >[])\n : (functions as Record<string, unknown>)?.item\n ? [\n (functions as Record<string, unknown>).item as Record<\n string,\n unknown\n >,\n ]\n : [];\n\n return (items as Array<Record<string, unknown>>).map((fm) => ({\n funcName: String((fm.FUNCNAME as string | undefined) ?? ''),\n shortText: fm.SHORT_TEXT\n ? String(fm.SHORT_TEXT as string | number | boolean)\n : undefined,\n processingType: remoteCallToProcessingType(\n fm.REMOTE_CALL as string | undefined,\n fm.UPDATE_TASK as string | undefined,\n ),\n basXMLEnabled: fm.REMOTE_BASXML === 'X',\n }));\n}\n\n// ============================================\n// XML building helpers\n// ============================================\n\n/**\n * Build PROGDIR XML for an include program (best-effort defaults).\n * PROGDIR is SAP-internal metadata that abapGit stores but ADT doesn't expose.\n */\nfunction buildProgdirXml(\n programName: string,\n subc: 'I' | 'F',\n fixpt: string,\n): string {\n // SUBC: I = Include, F = Function pool\n // RLOAD: E = only for function pool (main program)\n const rload = subc === 'F' ? '\\n <RLOAD>E</RLOAD>' : '';\n return `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<abapGit version=\"v1.0.0\">\n <asx:abap xmlns:asx=\"http://www.sap.com/abapxml\" version=\"1.0\">\n <asx:values>\n <PROGDIR>\n <NAME>${programName}</NAME>\n <SUBC>${subc}</SUBC>${rload}\n <FIXPT>${fixpt}</FIXPT>\n <UCCHECK>X</UCCHECK>\n </PROGDIR>\n </asx:values>\n </asx:abap>\n</abapGit>\n`;\n}\n\n/**\n * Build the standard main program source (SAPL{NAME}).\n * This is system-generated and contains INCLUDE declarations.\n */\nfunction buildMainProgramSource(nameUpper: string): string {\n return `*******************************************************************\n* System-defined Include-files. *\n*******************************************************************\n INCLUDE L${nameUpper}TOP. \" Global Declarations\n INCLUDE L${nameUpper}UXX. \" Function Modules\n\n*******************************************************************\n* User-defined Include-files (if necessary). *\n*******************************************************************\n* INCLUDE L${nameUpper}F... \" Subroutines\n* INCLUDE L${nameUpper}O... \" PBO-Modules\n* INCLUDE L${nameUpper}I... \" PAI-Modules\n* INCLUDE L${nameUpper}E... \" Events\n* INCLUDE L${nameUpper}P... \" Local class implement.\n* INCLUDE L${nameUpper}T99. \" ABAP Unit tests\n`;\n}\n","/**\n * Domain (DOMA) object handler for abapGit format\n */\n\nimport { AdkDomain } from '../adk';\nimport { doma } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\nexport const domainHandler = createHandler(AdkDomain, {\n schema: doma,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DOMA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const data = obj.dataSync;\n const typeInfo = data?.content?.typeInformation;\n const outInfo = data?.content?.outputInformation;\n const valueInfo = data?.content?.valueInformation;\n\n // Serialize fixed values if present\n const fixValues = valueInfo?.fixValues?.fixValue;\n const DD07V_TAB =\n fixValues && fixValues.length > 0\n ? {\n DD07V: fixValues.map((fv) => {\n const entry: Record<string, string> = {\n DOMNAME: obj.name ?? '',\n VALPOS: String(fv.position ?? '').padStart(4, '0'),\n DDLANGUAGE: isoToSapLang(data?.language),\n DOMVALUE_L: fv.low ?? '',\n DDTEXT: fv.text ?? '',\n };\n // Only include DOMVALUE_H if it has a value (for ranges)\n if (fv.high) {\n entry.DOMVALUE_H = fv.high;\n }\n return entry;\n }),\n }\n : undefined;\n\n return {\n DD01V: {\n DOMNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(data?.language),\n DATATYPE: typeInfo?.datatype ?? '',\n LENG: String(typeInfo?.length ?? '').padStart(6, '0'),\n DECIMALS: typeInfo?.decimals\n ? String(typeInfo.decimals).padStart(6, '0')\n : undefined,\n OUTPUTLEN: String(outInfo?.length ?? '').padStart(6, '0'),\n LOWERCASE: outInfo?.lowercase ? 'X' : undefined,\n SIGNFLAG: outInfo?.signExists ? 'X' : undefined,\n CONVEXIT: outInfo?.conversionExit || undefined,\n ENTITYTAB: valueInfo?.valueTableRef?.name || undefined,\n VALEXI: fixValues && fixValues.length > 0 ? 'X' : undefined,\n DDTEXT: obj.description ?? '',\n DOMMASTER: isoToSapLang(obj.masterLanguage),\n },\n DD07V_TAB,\n };\n },\n\n fromAbapGit: ({ DD01V, DD07V_TAB }) => {\n const fixValues =\n DD07V_TAB?.DD07V?.map((fv, idx) => ({\n position: Number(fv.VALPOS ?? idx + 1),\n low: fv.DOMVALUE_L ?? '',\n high: fv.DOMVALUE_H ?? '',\n text: fv.DDTEXT ?? '',\n })) ?? [];\n\n return {\n name: (DD01V?.DOMNAME ?? '').toUpperCase(),\n type: 'DOMA/DD',\n description: DD01V?.DDTEXT,\n language: sapLangToIso(DD01V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD01V?.DDLANGUAGE),\n content: {\n typeInformation: {\n datatype: DD01V?.DATATYPE ?? '',\n length: Number(DD01V?.LENG ?? 0),\n decimals: Number(DD01V?.DECIMALS ?? 0),\n },\n outputInformation: {\n length: Number(DD01V?.OUTPUTLEN ?? 0),\n style: '',\n conversionExit: DD01V?.CONVEXIT || undefined,\n signExists: DD01V?.SIGNFLAG === 'X',\n lowercase: DD01V?.LOWERCASE === 'X',\n },\n valueInformation: {\n valueTableRef: {\n name: DD01V?.ENTITYTAB || undefined,\n },\n fixValues: {\n fixValue: fixValues.length > 0 ? fixValues : undefined,\n },\n },\n },\n } as { name: string } & Record<string, unknown>;\n },\n});\n","/**\n * Data Element (DTEL) object handler for abapGit format\n */\n\nimport { AdkDataElement } from '../adk';\nimport { dtel } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport {\n isoToSapLang,\n sapLangToIso,\n abapLangVerToAdt,\n abapLangVerFromAdt,\n} from '../lang';\n\n/**\n * Map ADT typeKind → abapGit REFKIND\n */\nconst TYPEKIND_TO_REFKIND: Record<string, string> = {\n domain: 'D',\n predefinedAbapType: '',\n refToPredefinedAbapType: 'R',\n refToDictionaryType: 'R',\n refToClifType: 'R',\n};\n\n/**\n * Map ADT typeKind → abapGit REFTYPE (only for reference types)\n */\nconst TYPEKIND_TO_REFTYPE: Record<string, string | undefined> = {\n refToClifType: 'C',\n refToDictionaryType: 'E',\n refToPredefinedAbapType: 'E',\n};\n\n/**\n * Derive OUTPUTLEN from ABAP data type + length + decimals.\n *\n * The ADT REST API for data elements does not return OUTPUTLEN — SAP derives\n * it internally from the type definition. This function replicates SAP's\n * output length calculation for standard ABAP dictionary types.\n */\nfunction deriveOutputLength(\n dataType: string | undefined,\n length: number | undefined,\n decimals: number | undefined,\n): string | undefined {\n if (!dataType || !length) return undefined;\n\n const type = dataType.toUpperCase();\n const len = length;\n const dec = decimals ?? 0;\n\n switch (type) {\n // Simple types: output length = internal length\n case 'CHAR':\n case 'NUMC':\n case 'UNIT':\n case 'CUKY':\n case 'LCHR':\n case 'SSTRING':\n return String(len).padStart(6, '0');\n\n // Fixed-length types with known output length\n case 'CLNT':\n return '000003';\n case 'LANG':\n return '000001';\n case 'DATS':\n return '000010';\n case 'TIMS':\n return '000008';\n\n // Integer types\n case 'INT1':\n return '000003';\n case 'INT2':\n return '000005';\n case 'INT4':\n return '000010';\n case 'INT8':\n return '000019';\n\n // Floating point\n case 'FLTP':\n return '000022';\n\n // Numeric types with formatting: len + sign + group separators\n case 'DEC':\n case 'CURR':\n case 'QUAN': {\n const intDigits = len - dec;\n const separators = intDigits > 1 ? Math.floor((intDigits - 1) / 3) : 0;\n const outputLen = len + 1 + separators;\n return String(outputLen).padStart(6, '0');\n }\n\n // Raw/hex types: 2 hex chars per byte\n case 'RAW':\n case 'LRAW':\n return String(len * 2).padStart(6, '0');\n\n // Variable-length types have no meaningful output length\n case 'STRING':\n case 'RAWSTRING':\n case 'GEOM_EWKB':\n return undefined;\n\n default:\n return undefined;\n }\n}\n\nexport const dataElementHandler = createHandler(AdkDataElement, {\n schema: dtel,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DTEL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const data = obj.dataSync;\n const de = data?.dataElement;\n const typeKind = de?.typeKind ?? '';\n\n // Domain-based DTELs: DATATYPE/LENG/DECIMALS/OUTPUTLEN are inherited\n // from the domain, not stored on the DTEL itself. abapGit omits them.\n const isDomain = typeKind === 'domain';\n\n // Reference types: abapGit emits DATATYPE=REF but ADT doesn't return it.\n const isRef = typeKind.startsWith('refTo');\n const dataType = isRef ? 'REF' : de?.dataType || undefined;\n\n // Suppress domain-inherited type info\n const effectiveDataType = isDomain ? undefined : dataType;\n const effectiveLeng =\n isDomain || !de?.dataTypeLength\n ? undefined\n : String(de.dataTypeLength).padStart(6, '0');\n const effectiveDecimals =\n isDomain || !de?.dataTypeDecimals\n ? undefined\n : String(de.dataTypeDecimals).padStart(6, '0');\n const effectiveOutputLen = isDomain\n ? undefined\n : deriveOutputLength(\n de?.dataType,\n de?.dataTypeLength,\n de?.dataTypeDecimals,\n );\n\n // Properties ordered to match canonical DD04V table column order.\n // The XSD xs:sequence enforces this order in the XML output.\n return {\n DD04V: {\n ROLLNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(obj.language || undefined),\n DOMNAME: de?.typeName || undefined,\n HEADLEN: de?.headingFieldLength\n ? String(de.headingFieldLength)\n : undefined,\n SCRLEN1: de?.shortFieldLength ? String(de.shortFieldLength) : undefined,\n SCRLEN2: de?.mediumFieldLength\n ? String(de.mediumFieldLength)\n : undefined,\n SCRLEN3: de?.longFieldLength ? String(de.longFieldLength) : undefined,\n DDTEXT: obj.description ?? '',\n REPTEXT: de?.headingFieldLabel || undefined,\n SCRTEXT_S: de?.shortFieldLabel || undefined,\n SCRTEXT_M: de?.mediumFieldLabel || undefined,\n SCRTEXT_L: de?.longFieldLabel || undefined,\n DTELMASTER: isoToSapLang(obj.masterLanguage || undefined),\n DATATYPE: effectiveDataType,\n LENG: effectiveLeng,\n DECIMALS: effectiveDecimals,\n OUTPUTLEN: effectiveOutputLen,\n REFKIND: TYPEKIND_TO_REFKIND[typeKind] || undefined,\n REFTYPE: TYPEKIND_TO_REFTYPE[typeKind],\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(data?.abapLanguageVersion),\n },\n };\n },\n\n fromAbapGit: ({ DD04V }) => {\n // Map REFKIND + REFTYPE to ADT typeKind enum\n const refKind = DD04V?.REFKIND ?? '';\n const refType = DD04V?.REFTYPE ?? '';\n let typeKind: string;\n if (refKind === 'D') {\n typeKind = 'domain';\n } else if (refKind === 'R') {\n typeKind = refType === 'C' ? 'refToClifType' : 'refToDictionaryType';\n } else {\n typeKind = DD04V?.DATATYPE ? 'predefinedAbapType' : 'domain';\n }\n\n return {\n name: (DD04V?.ROLLNAME ?? '').toUpperCase(),\n type: 'DTEL/DE',\n description: DD04V?.DDTEXT,\n language: sapLangToIso(DD04V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD04V?.DDLANGUAGE),\n abapLanguageVersion: abapLangVerToAdt(DD04V?.ABAP_LANGUAGE_VERSION),\n dataElement: {\n // SAP's strict xs:sequence parser requires ALL elements to be present.\n // Every field in the dataelements.xsd sequence must have an explicit value.\n typeKind,\n typeName: DD04V?.DOMNAME || '',\n dataType: DD04V?.DATATYPE || '',\n dataTypeLength: DD04V?.LENG ? Number(DD04V.LENG) : 0,\n dataTypeLengthEnabled: false,\n dataTypeDecimals: DD04V?.DECIMALS ? Number(DD04V.DECIMALS) : 0,\n dataTypeDecimalsEnabled: false,\n shortFieldLabel: DD04V?.SCRTEXT_S || '',\n shortFieldLength: DD04V?.SCRLEN1 ? Number(DD04V.SCRLEN1) : 0,\n shortFieldMaxLength: DD04V?.SCRLEN1 ? Number(DD04V.SCRLEN1) : 0,\n mediumFieldLabel: DD04V?.SCRTEXT_M || '',\n mediumFieldLength: DD04V?.SCRLEN2 ? Number(DD04V.SCRLEN2) : 0,\n mediumFieldMaxLength: DD04V?.SCRLEN2 ? Number(DD04V.SCRLEN2) : 0,\n longFieldLabel: DD04V?.SCRTEXT_L || '',\n longFieldLength: DD04V?.SCRLEN3 ? Number(DD04V.SCRLEN3) : 0,\n longFieldMaxLength: DD04V?.SCRLEN3 ? Number(DD04V.SCRLEN3) : 0,\n headingFieldLabel: DD04V?.REPTEXT || '',\n headingFieldLength: DD04V?.HEADLEN ? Number(DD04V.HEADLEN) : 0,\n headingFieldMaxLength: DD04V?.HEADLEN ? Number(DD04V.HEADLEN) : 0,\n searchHelp: '',\n searchHelpParameter: '',\n setGetParameter: '',\n defaultComponentName: '',\n deactivateInputHistory: false,\n changeDocument: false,\n leftToRightDirection: false,\n deactivateBIDIFiltering: false,\n documentationStatus: '',\n },\n } as { name: string } & Record<string, unknown>;\n },\n});\n","/**\n * CDS AST → abapGit DD02V/DD03P Mapping\n *\n * Transforms @abapify/acds AST nodes into DD02V (header) and DD03P (field)\n * data structures for abapGit XML serialization.\n *\n * When a TypeResolver is provided, named type references are resolved via\n * ADT to determine whether they are data elements or structures, and to\n * extract metadata (search help origin, description) that is not available\n * from the CDS source alone.\n */\n\nimport type {\n TableDefinition,\n StructureDefinition,\n Annotation,\n AnnotationValue,\n FieldDefinition,\n IncludeDirective,\n BuiltinTypeRef,\n TableMember,\n} from '@abapify/acds';\n\n// ============================================\n// DD02V / DD03P data types\n// ============================================\n\nexport interface DD02VData {\n TABNAME?: string;\n DDLANGUAGE?: string;\n TABCLASS?: string;\n LANGDEP?: string;\n DDTEXT?: string;\n MASTERLANG?: string;\n CONTFLAG?: string;\n EXCLASS?: string;\n AUTHCLASS?: string;\n CLIDEP?: string;\n BUFFERED?: string;\n MATEFLAG?: string;\n}\n\nexport interface DD03PData {\n FIELDNAME?: string;\n POSITION?: string;\n KEYFLAG?: string;\n ROLLNAME?: string;\n ADMINFIELD?: string;\n INTTYPE?: string;\n INTLEN?: string;\n NOTNULL?: string;\n DATATYPE?: string;\n LENG?: string;\n DECIMALS?: string;\n SHLPORIGIN?: string;\n MASK?: string;\n COMPTYPE?: string;\n REFTABLE?: string;\n REFFIELD?: string;\n PRECFIELD?: string;\n DDTEXT?: string;\n}\n\n// ============================================\n// Type Resolver — resolves named types via ADT\n// ============================================\n\n/** Result of resolving a named type reference */\nexport interface ResolvedType {\n /** 'E' = data element, 'S' = structure */\n comptype: 'E' | 'S';\n /** Search help origin (e.g. 'D' for domain search help) */\n shlporigin?: string;\n /** Description text (used for include DDTEXT) */\n description?: string;\n}\n\n/**\n * Resolves named type references by querying ADT endpoints.\n * Caches results to avoid duplicate HTTP requests.\n */\nexport interface TypeResolver {\n resolve(name: string): Promise<ResolvedType>;\n}\n\n// ============================================\n// Annotation helpers\n// ============================================\n\n/** Extract the string value from an annotation value node */\nfunction annotationStringValue(val: AnnotationValue): string {\n switch (val.kind) {\n case 'string':\n return val.value;\n case 'enum':\n return val.value;\n case 'boolean':\n return val.value ? 'X' : '';\n case 'number':\n return String(val.value);\n default:\n return '';\n }\n}\n\n/** Find annotation by key and return its string value */\nfunction getAnnotation(\n annotations: Annotation[],\n key: string,\n): string | undefined {\n const ann = annotations.find((a) => a.key === key);\n return ann ? annotationStringValue(ann.value) : undefined;\n}\n\n// ============================================\n// Annotation → DD02V Mapping\n// ============================================\n\nconst TABLE_CATEGORY_MAP: Record<string, string> = {\n TRANSPARENT: 'TRANSP',\n CLUSTER: 'CLUSTER',\n POOL: 'POOL',\n APPEND: 'APPEND',\n};\n\nconst ENHANCEMENT_CATEGORY_MAP: Record<string, string> = {\n NOT_EXTENSIBLE: '1',\n EXTENSIBLE_CHARACTER_NUMERIC: '2',\n EXTENSIBLE_CHARACTER: '3',\n EXTENSIBLE_ANY: '4',\n NOT_CLASSIFIED: '0',\n};\n\nconst DATA_MAINTENANCE_MAP: Record<string, string> = {\n RESTRICTED: 'X',\n NOT_ALLOWED: 'N',\n ALLOWED: '',\n};\n\n/**\n * Build DD02V data from a parsed CDS table/structure definition\n */\nexport function buildDD02V(\n def: TableDefinition | StructureDefinition,\n language: string,\n description: string,\n): DD02VData {\n // Compute all values first, then assemble in abapGit field order\n let tabclass = def.kind === 'structure' ? 'INTTAB' : 'TRANSP';\n\n const tableCategory = getAnnotation(\n def.annotations,\n 'AbapCatalog.tableCategory',\n );\n if (tableCategory) {\n tabclass = TABLE_CATEGORY_MAP[tableCategory] || tabclass;\n }\n\n const deliveryClass = getAnnotation(\n def.annotations,\n 'AbapCatalog.deliveryClass',\n );\n\n const enhancementCategory = getAnnotation(\n def.annotations,\n 'AbapCatalog.enhancement.category',\n );\n\n const dataMaintenance = getAnnotation(\n def.annotations,\n 'AbapCatalog.dataMaintenance',\n );\n\n // Detect language-dependent structure/table:\n // LANGDEP=X when any field references data element SPRAS or builtin type abap.lang\n const hasLanguageField = def.members.some((m) => {\n if ('kind' in m && m.kind === 'include') return false;\n const f = m as FieldDefinition;\n if (f.type.kind === 'named') return f.type.name.toUpperCase() === 'SPRAS';\n if (f.type.kind === 'builtin')\n return (f.type as BuiltinTypeRef).name === 'lang';\n return false;\n });\n\n // Detect client-dependent table:\n // CLIDEP=X when any key field references data element MANDT or builtin type abap.clnt\n const hasClientKeyField = def.members.some((m) => {\n if ('kind' in m && m.kind === 'include') return false;\n const f = m as FieldDefinition;\n if (!f.isKey) return false;\n if (f.type.kind === 'named') return f.type.name.toUpperCase() === 'MANDT';\n if (f.type.kind === 'builtin')\n return (f.type as BuiltinTypeRef).name === 'clnt';\n return false;\n });\n\n // Build result in standard abapGit DD02V field order:\n // TABNAME, DDLANGUAGE, TABCLASS, LANGDEP, CLIDEP, DDTEXT, MASTERLANG, CONTFLAG, EXCLASS, MATEFLAG\n const result: DD02VData = {};\n result.TABNAME = def.name.toUpperCase();\n result.DDLANGUAGE = language;\n result.TABCLASS = tabclass;\n if (hasLanguageField) result.LANGDEP = 'X';\n if (hasClientKeyField) result.CLIDEP = 'X';\n result.DDTEXT = description;\n result.MASTERLANG = language;\n if (deliveryClass) result.CONTFLAG = deliveryClass;\n if (enhancementCategory)\n result.EXCLASS = ENHANCEMENT_CATEGORY_MAP[enhancementCategory];\n if (dataMaintenance)\n result.MATEFLAG = DATA_MAINTENANCE_MAP[dataMaintenance] ?? '';\n\n return result;\n}\n\n// ============================================\n// Field → DD03P Mapping\n// ============================================\n\ninterface BuiltinType {\n datatype: string;\n inttype: string;\n /** Fixed DDIC length (for types without user-specified length) */\n length?: number;\n /** Fixed DDIC decimals (e.g. FLTP always has 16) */\n decimals?: number;\n /** Fixed internal byte length (overrides computed INTLEN) */\n fixedIntlen?: number;\n /** Whether this type has no LENG in the DDIC (variable-length types) */\n noLeng?: boolean;\n /** SHLPORIGIN value for search help (T = table-driven) */\n shlporigin?: string;\n}\n\n// DDIC INTTYPE/INTLEN mapping based on SAP abapGit serialization:\n// - INT1/INT2/INT4 use INTTYPE=X with raw byte-size INTLEN\n// - DATS/TIMS/DATN/TIMN use Unicode-doubled INTLEN\n// - String/rawstring have fixedIntlen=8 and no LENG\nconst BUILTIN_TYPES: Record<string, BuiltinType> = {\n char: { datatype: 'CHAR', inttype: 'C' },\n clnt: { datatype: 'CLNT', inttype: 'C', length: 3 },\n numc: { datatype: 'NUMC', inttype: 'N' },\n dats: {\n datatype: 'DATS',\n inttype: 'D',\n length: 8,\n fixedIntlen: 16,\n shlporigin: 'T',\n },\n datn: {\n datatype: 'DATN',\n inttype: 'D',\n length: 8,\n fixedIntlen: 16,\n shlporigin: 'T',\n },\n tims: {\n datatype: 'TIMS',\n inttype: 'T',\n length: 6,\n fixedIntlen: 12,\n shlporigin: 'T',\n },\n timn: {\n datatype: 'TIMN',\n inttype: 'T',\n length: 6,\n fixedIntlen: 12,\n shlporigin: 'T',\n },\n string: { datatype: 'STRG', inttype: 'g', fixedIntlen: 8, noLeng: true },\n xstring: { datatype: 'RSTR', inttype: 'y', fixedIntlen: 8, noLeng: true },\n int1: { datatype: 'INT1', inttype: 'X', length: 3, fixedIntlen: 1 },\n int2: { datatype: 'INT2', inttype: 'X', length: 5, fixedIntlen: 2 },\n int4: { datatype: 'INT4', inttype: 'X', length: 10, fixedIntlen: 4 },\n int8: { datatype: 'INT8', inttype: '8', length: 19, fixedIntlen: 8 },\n fltp: {\n datatype: 'FLTP',\n inttype: 'F',\n length: 16,\n decimals: 16,\n fixedIntlen: 8,\n },\n dec: { datatype: 'DEC', inttype: 'P' },\n curr: { datatype: 'CURR', inttype: 'P' },\n quan: { datatype: 'QUAN', inttype: 'P' },\n raw: { datatype: 'RAW', inttype: 'X' },\n rawstring: { datatype: 'RSTR', inttype: 'y', fixedIntlen: 8, noLeng: true },\n lang: { datatype: 'LANG', inttype: 'C', length: 1 },\n unit: { datatype: 'UNIT', inttype: 'C', length: 3 },\n cuky: { datatype: 'CUKY', inttype: 'C', length: 5 },\n d16n: { datatype: 'D16N', inttype: 'a', fixedIntlen: 8 },\n d34n: { datatype: 'D34N', inttype: 'e', fixedIntlen: 16 },\n utclong: { datatype: 'UTCL', inttype: 'p', length: 27, fixedIntlen: 8 },\n};\n\n/** Zero-pad number to given width */\nfunction zeroPad(n: number, width: number): string {\n return String(n).padStart(width, '0');\n}\n\n/** Compute internal length from type info */\nfunction computeIntlen(builtin: BuiltinType, length?: number): number {\n if (builtin.fixedIntlen !== undefined) return builtin.fixedIntlen;\n\n // Packed decimal types: ceil((length + 1) / 2)\n if (builtin.inttype === 'P' && length !== undefined) {\n return Math.ceil((length + 1) / 2);\n }\n\n // Raw bytes: length directly\n if (builtin.inttype === 'X' && length !== undefined) {\n return length;\n }\n\n // Character types: length * 2 (Unicode)\n if (length !== undefined) {\n return length * 2;\n }\n\n // Fixed-length types with known length\n if (builtin.length !== undefined) {\n return builtin.length * 2;\n }\n\n return 0;\n}\n\n/** Build a DD03P entry from a single field definition */\nasync function buildFieldDD03P(\n field: FieldDefinition,\n tableName: string,\n resolver?: TypeResolver,\n): Promise<DD03PData> {\n // Compute all values first\n const isKey = field.isKey;\n const notNull = field.notNull;\n let rollname: string | undefined;\n let comptype: string | undefined;\n let inttype: string | undefined;\n let intlen: string | undefined;\n let datatype: string | undefined;\n let leng: string | undefined;\n let decimals: string | undefined;\n let mask: string | undefined;\n let shlporigin: string | undefined;\n let reftable: string | undefined;\n let reffield: string | undefined;\n\n if (field.type.kind === 'builtin') {\n const bt = field.type as BuiltinTypeRef;\n const typeInfo = BUILTIN_TYPES[bt.name];\n if (typeInfo) {\n // Use explicit CDS length, or fall back to fixed DDIC length\n const length = bt.length ?? typeInfo.length;\n inttype = typeInfo.inttype;\n intlen = zeroPad(computeIntlen(typeInfo, length), 6);\n datatype = typeInfo.datatype;\n\n // LENG: skip for variable-length types (string, xstring, rawstring)\n if (!typeInfo.noLeng && length !== undefined) {\n leng = zeroPad(length, 6);\n }\n\n // DECIMALS: use explicit CDS decimals, or fixed DDIC decimals\n const dec = bt.decimals ?? typeInfo.decimals;\n if (dec !== undefined) decimals = zeroPad(dec, 6);\n\n // MASK: all builtin types get \" DATATYPE\"\n mask = ` ${typeInfo.datatype}`;\n\n // SHLPORIGIN (date/time types)\n if (typeInfo.shlporigin) shlporigin = typeInfo.shlporigin;\n\n // REFTABLE/REFFIELD for currency and quantity fields\n // These come from CDS annotations on the field\n // Annotation value is 'tablename.fieldname' — we only need the field part\n if (bt.name === 'curr' || bt.name === 'quan') {\n const refAnnotation = getAnnotation(\n field.annotations,\n bt.name === 'curr'\n ? 'Semantics.amount.currencyCode'\n : 'Semantics.quantity.unitOfMeasure',\n );\n if (refAnnotation) {\n reftable = tableName;\n // Strip table prefix if present (e.g. 'ztest.currency_code' → 'CURRENCY_CODE')\n const parts = refAnnotation.split('.');\n reffield = parts[parts.length - 1].toUpperCase();\n }\n }\n }\n } else {\n // Named type reference — resolve via ADT if available\n rollname = field.type.name.toUpperCase();\n comptype = 'E'; // Default: data element\n if (resolver) {\n const resolved = await resolver.resolve(field.type.name);\n comptype = resolved.comptype;\n if (resolved.shlporigin) shlporigin = resolved.shlporigin;\n if (resolved.comptype === 'S') {\n datatype = 'STRU';\n mask = ' STRUS';\n }\n }\n }\n\n // Build in standard abapGit DD03P field order\n //\n // NOTE: POSITION is a real DD03P database value. abapGit emits it\n // inconsistently (only for some transparent tables). We omit it to\n // avoid roundtrip mismatches — SAP auto-computes it on import.\n const result: DD03PData = {};\n result.FIELDNAME = field.name.toUpperCase();\n if (isKey) result.KEYFLAG = 'X';\n if (rollname) result.ROLLNAME = rollname;\n result.ADMINFIELD = '0';\n if (inttype) result.INTTYPE = inttype;\n if (intlen) result.INTLEN = intlen;\n if (notNull) result.NOTNULL = 'X';\n if (datatype) result.DATATYPE = datatype;\n if (leng) result.LENG = leng;\n if (decimals) result.DECIMALS = decimals;\n if (shlporigin) result.SHLPORIGIN = shlporigin;\n if (reftable) result.REFTABLE = reftable;\n if (reffield) result.REFFIELD = reffield;\n if (mask) result.MASK = mask;\n if (comptype) result.COMPTYPE = comptype;\n\n return result;\n}\n\n/**\n * Build DD03P entries from table/structure members\n */\nexport async function buildDD03P(\n members: TableMember[],\n tableName = '',\n resolver?: TypeResolver,\n): Promise<DD03PData[]> {\n const entries: DD03PData[] = [];\n\n for (const member of members) {\n if ('kind' in member && member.kind === 'include') {\n const inc = member as IncludeDirective;\n const includeName = inc.name.toUpperCase();\n\n // Resolve include description via ADT if available\n let ddtext: string | undefined;\n if (resolver) {\n const resolved = await resolver.resolve(inc.name);\n ddtext = resolved.description;\n }\n\n if (inc.suffix) {\n // Include with suffix → .INCLU-<SUFFIX> entry\n const entry: DD03PData = {\n FIELDNAME: `.INCLU-${inc.suffix.toUpperCase()}`,\n ADMINFIELD: '0',\n PRECFIELD: includeName,\n MASK: ' S',\n COMPTYPE: 'S',\n };\n if (ddtext) entry.DDTEXT = ddtext;\n entries.push(entry);\n } else {\n // Plain include → .INCLUDE entry\n const entry: DD03PData = {\n FIELDNAME: '.INCLUDE',\n ADMINFIELD: '0',\n PRECFIELD: includeName,\n MASK: ' S',\n COMPTYPE: 'S',\n };\n if (ddtext) entry.DDTEXT = ddtext;\n entries.push(entry);\n }\n } else {\n // Regular field definition\n const field = member as FieldDefinition;\n entries.push(await buildFieldDD03P(field, tableName, resolver));\n }\n }\n\n return entries;\n}\n","/**\n * Table/Structure (TABL) object handlers for abapGit format\n *\n * Serializes SAP tables (TABL/DT) and structures (TABL/DS) to\n * abapGit-compatible XML format by fetching the CDS-style source code\n * from SAP, parsing it with @abapify/acds, and mapping the AST into\n * DD02V/DD03P structures.\n *\n * Tables and structures share the same serialization logic but use\n * different ADT endpoints (ddic/tables vs ddic/structures).\n *\n * Data sources:\n * - blueSource GET: name, type, description, language\n * - source/main GET: CDS source with annotations and field definitions\n * → parsed via @abapify/acds into AST\n * → mapped into DD02V annotations and DD03P field entries\n * - Per named type: /sap/bc/adt/ddic/dataelements/{name} or /structures/{name}\n * → resolves COMPTYPE (E vs S), SHLPORIGIN, description (DDTEXT)\n */\n\nimport {\n parse,\n type TableDefinition,\n type StructureDefinition,\n} from '@abapify/acds';\nimport { tablesettings, type InferTypedSchema } from '@abapify/adt-schemas';\nimport { AdkTable, AdkStructure } from '../adk';\nimport { tabl } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\nimport { buildDD02V, buildDD03P } from '../cds-to-abapgit';\nimport type { TypeResolver, ResolvedType } from '../cds-to-abapgit';\nimport { formatAbapGitXml } from '../xml-format';\n\n/**\n * Strip undefined/empty-string values from an object\n * to avoid emitting empty XML elements\n */\nfunction stripEmpty<T extends object>(obj: T): Partial<T> {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== undefined && value !== '') {\n result[key] = value;\n }\n }\n return result as Partial<T>;\n}\n\n/**\n * Create a TypeResolver that resolves named types via ADT endpoints.\n * Tries data element first, then structure. Caches results.\n */\nfunction createAdtTypeResolver(obj: AdkTable | AdkStructure): TypeResolver {\n const cache = new Map<string, ResolvedType>();\n\n return {\n async resolve(name: string): Promise<ResolvedType> {\n const key = name.toLowerCase();\n if (cache.has(key)) return cache.get(key)!;\n\n // Try data element first\n const dtelXml = await obj.fetchText(\n `/sap/bc/adt/ddic/dataelements/${encodeURIComponent(key)}`,\n );\n if (dtelXml) {\n const result: ResolvedType = { comptype: 'E' };\n\n // Extract searchHelp → SHLPORIGIN=D\n const searchHelpMatch = dtelXml.match(\n /<dtel:searchHelp>[^<]+<\\/dtel:searchHelp>/,\n );\n if (searchHelpMatch) {\n result.shlporigin = 'D';\n }\n\n // Extract description for potential reuse\n const descMatch = dtelXml.match(/adtcore:description=\"([^\"]+)\"/);\n if (descMatch) result.description = descMatch[1];\n\n cache.set(key, result);\n return result;\n }\n\n // Try structure\n const structXml = await obj.fetchText(\n `/sap/bc/adt/ddic/structures/${encodeURIComponent(key)}`,\n );\n if (structXml) {\n const result: ResolvedType = { comptype: 'S' };\n\n // Extract description for include DDTEXT\n const descMatch = structXml.match(/adtcore:description=\"([^\"]+)\"/);\n if (descMatch) result.description = descMatch[1];\n\n cache.set(key, result);\n return result;\n }\n\n // Fallback: assume data element\n const fallback: ResolvedType = { comptype: 'E' };\n cache.set(key, fallback);\n return fallback;\n },\n };\n}\n\ntype TableSettings = Extract<\n InferTypedSchema<typeof tablesettings>,\n { tableSettings: unknown }\n>['tableSettings'];\n\n/**\n * Parse ADT table settings XML into DD09L data for abapGit serialization.\n *\n * Uses the typed `tablesettings` schema from @abapify/adt-schemas to parse\n * the ADT endpoint response (/sap/bc/adt/ddic/db/settings/{name}).\n *\n * Mapping:\n * tableSettings.sizeCategory → DD09L.TABKAT\n * tableSettings.dataClassCategory → DD09L.TABART\n * tableSettings.buffering.allowed → DD09L.BUFALLOW\n * tableSettings.buffering.type → DD09L.PUFFERUNG\n * tableSettings.buffering.areaKeyFields → DD09L.SCHFELDANZ\n * tableSettings.loggingEnabled → DD09L.PROTOKOLL\n */\nfunction parseSettingsToDD09L(\n settingsXml: string,\n tableName: string,\n): Record<string, string> | undefined {\n let settings: TableSettings;\n try {\n const parsed = tablesettings.parse(settingsXml);\n if (!('tableSettings' in parsed)) return undefined;\n settings = parsed.tableSettings;\n } catch {\n return undefined;\n }\n\n // Build DD09L in abapGit field order (matches dd09l.xsd sequence)\n const dd09l: Record<string, string> = {};\n dd09l.TABNAME = tableName;\n dd09l.AS4LOCAL = 'A'; // Active version\n if (settings.sizeCategory) dd09l.TABKAT = settings.sizeCategory;\n if (settings.dataClassCategory) dd09l.TABART = settings.dataClassCategory;\n if (settings.buffering?.allowed) dd09l.BUFALLOW = settings.buffering.allowed;\n\n const bufType = settings.buffering?.type as string | undefined;\n if (bufType) dd09l.PUFFERUNG = bufType;\n\n const areaKeyFields = settings.buffering?.areaKeyFields;\n if (areaKeyFields && areaKeyFields !== '0') dd09l.SCHFELDANZ = areaKeyFields;\n\n if (settings.loggingEnabled) dd09l.PROTOKOLL = 'X';\n\n return dd09l;\n}\n\n/**\n * Shared serialize logic for tables and structures.\n * Both use CDS source → DD02V/DD03P mapping.\n */\nasync function serializeTabl<T extends AdkTable | AdkStructure>(\n obj: T,\n ctx: {\n getObjectName: (obj: T) => string;\n toAbapGitXml: (obj: T) => string;\n createFile: (\n path: string,\n content: string,\n ) => { path: string; content: string };\n },\n): Promise<{ path: string; content: string }[]> {\n const objectName = ctx.getObjectName(obj);\n const lang = isoToSapLang(obj.language || undefined);\n\n // Fetch CDS source from SAP\n let cdsSource: string;\n try {\n cdsSource = await obj.getSource();\n } catch {\n // Fallback: if source fetch fails, produce minimal DD02V only\n const xmlContent = ctx.toAbapGitXml(obj);\n return [ctx.createFile(`${objectName}.tabl.xml`, xmlContent)];\n }\n\n // Parse CDS source with @abapify/acds\n const { ast, errors } = parse(cdsSource);\n if (errors.length > 0 || ast.definitions.length === 0) {\n // If parsing fails, fall back to minimal DD02V\n const xmlContent = ctx.toAbapGitXml(obj);\n return [ctx.createFile(`${objectName}.tabl.xml`, xmlContent)];\n }\n\n // Extract table/structure definition from AST\n const def = ast.definitions[0] as TableDefinition | StructureDefinition;\n\n // Build DD02V from AST annotations\n const dd02v = buildDD02V(def, lang, obj.description ?? '');\n\n // Create type resolver for named type resolution via ADT\n const resolver = createAdtTypeResolver(obj);\n\n // Build DD03P from AST field definitions (async for type resolution)\n const dd03pEntries = await buildDD03P(\n def.members,\n def.name.toUpperCase(),\n resolver,\n );\n\n // Construct the full abapGit values\n const values: Record<string, unknown> = {\n DD02V: stripEmpty(dd02v),\n };\n\n // Fetch DD09L (technical settings) for tables only\n // Structures don't have technical settings\n if ('getSettings' in obj && typeof obj.getSettings === 'function') {\n try {\n const settingsXml = await (obj as AdkTable).getSettings();\n if (settingsXml) {\n const dd09l = parseSettingsToDD09L(settingsXml, def.name.toUpperCase());\n if (dd09l) {\n values.DD09L = stripEmpty(dd09l);\n }\n }\n } catch {\n // Settings not available (e.g., new table, no ADT endpoint), skip DD09L\n }\n }\n\n if (dd03pEntries.length > 0) {\n values.DD03P_TABLE = {\n DD03P: dd03pEntries.map((entry) => stripEmpty(entry)),\n };\n }\n\n // Build the full abapGit XML payload\n const fullPayload = {\n abap: {\n version: '1.0',\n values,\n },\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TABL',\n serializer_version: 'v1.0.0',\n };\n\n // Build XML using the schema\n const xml = formatAbapGitXml(\n tabl.build(fullPayload as any, { pretty: true }),\n );\n\n return [ctx.createFile(`${objectName}.tabl.xml`, xml)];\n}\n\n/** Shared fromAbapGit logic for both tables and structures */\nfunction fromAbapGitTabl({ DD02V }: any = {}) {\n return {\n name: (DD02V?.TABNAME ?? '').toUpperCase(),\n type: DD02V?.TABCLASS === 'INTTAB' ? 'TABL/DS' : 'TABL/DT',\n description: DD02V?.DDTEXT,\n language: sapLangToIso(DD02V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD02V?.DDLANGUAGE),\n } as { name: string } & Record<string, unknown>;\n}\n\nexport const tableHandler = createHandler(AdkTable, {\n schema: tabl,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TABL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DD02V: {\n TABNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(obj.language || undefined),\n TABCLASS: 'TRANSP',\n DDTEXT: obj.description ?? '',\n },\n }),\n\n serialize: (obj, ctx) => serializeTabl(obj, ctx),\n fromAbapGit: fromAbapGitTabl,\n});\n\nexport const structureHandler = createHandler(AdkStructure, {\n schema: tabl,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TABL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DD02V: {\n TABNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(obj.language || undefined),\n TABCLASS: 'INTTAB',\n DDTEXT: obj.description ?? '',\n },\n }),\n\n serialize: (obj, ctx) => serializeTabl(obj, ctx),\n fromAbapGit: fromAbapGitTabl,\n});\n","/**\n * Table Type (TTYP) object handler for abapGit format\n *\n * Maps between abapGit DD40V codes and ADT API enum values.\n */\n\nimport { AdkTableType } from '../adk';\nimport { ttyp } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport {\n isoToSapLang,\n sapLangToIso,\n abapLangVerToAdt,\n abapLangVerFromAdt,\n} from '../lang';\n\n// ============================================\n// DD40V ↔ ADT API enum mappings\n// ============================================\n\n/** DD40V ACCESSMODE → ADT accessType */\nconst ACCESS_MODE_TO_ADT: Record<string, string> = {\n T: 'standard',\n S: 'sorted',\n H: 'hashed',\n};\nconst ACCESS_MODE_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(ACCESS_MODE_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/** DD40V KEYDEF → ADT primaryKey.definition */\nconst KEY_DEF_TO_ADT: Record<string, string> = {\n D: 'standard',\n K: 'keyComponents',\n T: 'rowType',\n};\nconst KEY_DEF_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(KEY_DEF_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/** DD40V KEYKIND → ADT primaryKey.kind */\nconst KEY_KIND_TO_ADT: Record<string, string> = {\n N: 'nonUnique',\n U: 'unique',\n G: 'notSpecified',\n};\nconst KEY_KIND_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(KEY_KIND_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * DD40V ROWKIND → ADT rowType.typeKind\n *\n * ROWKIND='' (empty) + DATATYPE set → predefinedAbapType (built-in like STRING, INT4)\n * ROWKIND='S' → dictionaryType (references a structure/table/data element)\n * ROWKIND='R' → ref type\n */\nconst ROW_KIND_TO_ADT: Record<string, string> = {\n '': 'predefinedAbapType',\n S: 'dictionaryType',\n R: 'refToDictionaryType',\n};\nconst ROW_KIND_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(ROW_KIND_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * DD40V DATATYPE (DDIC code) → ADT builtInType.dataType (ABAP type name)\n *\n * abapGit stores 4-char DDIC internal codes (e.g. STRG, RSTR).\n * SAP ADT REST API uses ABAP type names (e.g. STRING, XSTRING).\n * Most types use the same name in both (CHAR, NUMC, INT4, etc.);\n * only a few differ.\n */\nconst DATATYPE_TO_ADT: Record<string, string> = {\n STRG: 'STRING',\n SSTR: 'SSTRING',\n RSTR: 'XSTRING',\n UTCL: 'UTCLONG',\n};\nconst DATATYPE_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(DATATYPE_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * DD40V TYPELEN — fixed internal byte length for predefined types.\n *\n * Variable-length types (STRING, XSTRING) have a fixed pointer size (8 bytes)\n * that abapGit stores as TYPELEN. This is not the same as LENG (display length).\n * We only need to emit TYPELEN for types that have noLeng=true (no external LENG).\n */\nconst FIXED_TYPELEN: Record<string, number> = {\n STRG: 8,\n RSTR: 8,\n};\n\n// ============================================\n// Handler\n// ============================================\n\nexport const tableTypeHandler = createHandler(AdkTableType, {\n schema: ttyp,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TTYP',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const data = obj.dataSync;\n const accessMode =\n ACCESS_MODE_FROM_ADT[data?.accessType ?? ''] ?? data?.accessType ?? '';\n const keyDef =\n KEY_DEF_FROM_ADT[data?.primaryKey?.definition ?? ''] ??\n data?.primaryKey?.definition ??\n '';\n const keyKind =\n KEY_KIND_FROM_ADT[data?.primaryKey?.kind ?? ''] ??\n data?.primaryKey?.kind ??\n '';\n const rowKind =\n ROW_KIND_FROM_ADT[data?.rowType?.typeKind ?? ''] ??\n data?.rowType?.typeKind ??\n '';\n\n // Map ADT dataType (STRING) → DDIC code (STRG)\n const adtDataType = data?.rowType?.builtInType?.dataType ?? '';\n const ddicDataType = DATATYPE_FROM_ADT[adtDataType] ?? adtDataType;\n\n // TYPELEN: fixed internal byte length for variable-length types (STRING, XSTRING)\n const typeLen = FIXED_TYPELEN[ddicDataType];\n\n return {\n DD40V: {\n TYPENAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(data?.language || undefined),\n ROWTYPE: data?.rowType?.typeName || undefined,\n ROWKIND: rowKind || undefined,\n DATATYPE: ddicDataType,\n LENG: data?.rowType?.builtInType?.length\n ? String(data.rowType.builtInType.length).padStart(6, '0')\n : undefined,\n DECIMALS: data?.rowType?.builtInType?.decimals\n ? String(data.rowType.builtInType.decimals).padStart(6, '0')\n : undefined,\n ACCESSMODE: accessMode,\n KEYDEF: keyDef,\n KEYKIND: keyKind,\n DDTEXT: obj.description ?? '',\n TYPELEN: typeLen ? String(typeLen).padStart(6, '0') : undefined,\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(data?.abapLanguageVersion),\n },\n };\n },\n\n fromAbapGit: ({ DD40V }) => {\n const accessType =\n ACCESS_MODE_TO_ADT[DD40V?.ACCESSMODE ?? ''] ?? DD40V?.ACCESSMODE;\n const keyDef = KEY_DEF_TO_ADT[DD40V?.KEYDEF ?? ''] ?? DD40V?.KEYDEF;\n const keyKind = KEY_KIND_TO_ADT[DD40V?.KEYKIND ?? ''] ?? DD40V?.KEYKIND;\n const rowKind = ROW_KIND_TO_ADT[DD40V?.ROWKIND ?? ''] ?? DD40V?.ROWKIND;\n\n // Map DDIC code (STRG) → ADT dataType (STRING)\n const ddicCode = DD40V?.DATATYPE ?? '';\n const adtDataType = DATATYPE_TO_ADT[ddicCode] ?? ddicCode;\n\n // For predefinedAbapType (built-in), typeName should be empty\n // For dictionaryType, typeName is the referenced type name\n const isPredefined = rowKind === 'predefinedAbapType';\n\n return {\n name: (DD40V?.TYPENAME ?? '').toUpperCase(),\n type: 'TTYP/DA',\n description: DD40V?.DDTEXT,\n language: sapLangToIso(DD40V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD40V?.DDLANGUAGE),\n abapLanguageVersion: abapLangVerToAdt(DD40V?.ABAP_LANGUAGE_VERSION),\n rowType: {\n typeKind: rowKind,\n typeName: isPredefined ? '' : DD40V?.ROWTYPE || '',\n // SAP's strict xs:sequence parser requires builtInType element\n // to be present even when logically empty (e.g. refToDictionaryType).\n // Default all fields to avoid \"expected element builtInType\" errors.\n builtInType: {\n dataType: ddicCode ? adtDataType : '',\n length: DD40V?.LENG ? Number(DD40V.LENG) : 0,\n decimals: DD40V?.DECIMALS ? Number(DD40V.DECIMALS) : 0,\n },\n rangeType: '',\n },\n accessType,\n primaryKey: {\n definition: keyDef,\n kind: keyKind,\n components: { component: [] },\n alias: '',\n },\n secondaryKeys: {\n allowed: 'notSpecified',\n },\n } as { name: string } & Record<string, unknown>;\n },\n});\n","/**\n * BDEF (RAP Behavior Definition) object handler for abapGit format\n *\n * BDEF is source-driven: the semantic content lives in a `.abdl` file\n * (the RAP behavior definition language) and abapGit stores it alongside\n * a minimal SKEY metadata block.\n *\n * File layout:\n * src/zbp_foo.bdef.abdl — behavior source (.abdl text)\n * src/zbp_foo.bdef.xml — minimal metadata wrapper\n *\n * The handler uses the string form of `createHandler` ('BDEF') because\n * the ADK object (`AdkBehaviorDefinition`) is a lightweight class without\n * the AdkObject save/lock machinery — all lifecycle is source-based.\n *\n * We override `serialize` so the source file gets the `.abdl` extension\n * instead of the default `.abap`.\n */\n\nimport { bdef } from '../../../schemas/generated';\nimport { createHandler, type SerializedFile } from '../base';\n\n// BDEF is not derived from AdkObject — we cast to the minimal handler shape\n// via the string form of createHandler.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype BdefLike = any;\n\nexport const behaviorDefinitionHandler = createHandler<BdefLike, typeof bdef>(\n 'BDEF',\n {\n schema: bdef,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_BDEF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SKEY: {\n TYPE: 'BDEF',\n NAME: String(obj?.name ?? '').toUpperCase(),\n },\n }),\n\n // Source is `.abdl` text retrieved from ADT `source/main`.\n getSource: (obj) =>\n typeof obj?.getSource === 'function'\n ? obj.getSource()\n : Promise.resolve(''),\n\n fromAbapGit: ({ SKEY }) => ({\n name: String(SKEY?.NAME ?? '').toUpperCase(),\n }),\n\n // Custom serialize — file extension for BDEF source is `.abdl`, not `.abap`.\n async serialize(object, ctx): Promise<SerializedFile[]> {\n const files: SerializedFile[] = [];\n const objectName = ctx.getObjectName(object);\n\n // Source: <name>.bdef.abdl\n const source = await (typeof object?.getSource === 'function'\n ? object.getSource()\n : Promise.resolve(''));\n if (source) {\n files.push(\n ctx.createFile(`${objectName}.${ctx.fileExtension}.abdl`, source),\n );\n }\n\n // Metadata: <name>.bdef.xml\n const xmlContent = ctx.toAbapGitXml(object);\n files.push(\n ctx.createFile(`${objectName}.${ctx.fileExtension}.xml`, xmlContent),\n );\n\n return files;\n },\n\n setSources: (obj, sources) => {\n if (sources.main) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n },\n);\n","/**\n * SRVD (RAP Service Definition) object handler for abapGit format\n *\n * SRVD is source-driven: the semantic content lives in a `.asrvd` file\n * (CDS-like service definition) and abapGit stores it alongside\n * a minimal SKEY metadata block.\n *\n * File layout:\n * src/zui_foo.srvd.asrvd — service source (.asrvd text)\n * src/zui_foo.srvd.xml — minimal metadata wrapper\n *\n * The handler uses the string form of `createHandler` ('SRVD') because\n * the ADK object (`AdkServiceDefinition`) is a lightweight class without\n * the AdkObject save/lock machinery — all lifecycle is source-based.\n *\n * We override `serialize` so the source file gets the `.asrvd` extension\n * instead of the default `.abap`.\n */\n\nimport { srvd } from '../../../schemas/generated';\nimport { createHandler, type SerializedFile } from '../base';\n\n// SRVD is not derived from AdkObject — we cast to the minimal handler shape\n// via the string form of createHandler.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SrvdLike = any;\n\nexport const serviceDefinitionHandler = createHandler<SrvdLike, typeof srvd>(\n 'SRVD',\n {\n schema: srvd,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SRVD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SKEY: {\n TYPE: 'SRVD',\n NAME: String(obj?.name ?? '').toUpperCase(),\n },\n }),\n\n // Source is `.asrvd` text retrieved from ADT `source/main`.\n getSource: (obj) =>\n typeof obj?.getSource === 'function'\n ? obj.getSource()\n : Promise.resolve(''),\n\n fromAbapGit: ({ SKEY }) => ({\n name: String(SKEY?.NAME ?? '').toUpperCase(),\n }),\n\n // Custom serialize — file extension for SRVD source is `.asrvd`, not `.abap`.\n async serialize(object, ctx): Promise<SerializedFile[]> {\n const files: SerializedFile[] = [];\n const objectName = ctx.getObjectName(object);\n\n // Source: <name>.srvd.asrvd\n const source = await (typeof object?.getSource === 'function'\n ? object.getSource()\n : Promise.resolve(''));\n if (source) {\n files.push(\n ctx.createFile(`${objectName}.${ctx.fileExtension}.asrvd`, source),\n );\n }\n\n // Metadata: <name>.srvd.xml\n const xmlContent = ctx.toAbapGitXml(object);\n files.push(\n ctx.createFile(`${objectName}.${ctx.fileExtension}.xml`, xmlContent),\n );\n\n return files;\n },\n\n setSources: (obj, sources) => {\n if (sources.main) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n },\n);\n","/**\n * SRVB (RAP Service Binding) object handler for abapGit format\n *\n * Unlike BDEF/SRVD, SRVB is **metadata-only** — there is no `.abdl`/\n * `.asrvd`-style source text. The handler writes a single\n * `<name>.srvb.xml` file carrying a minimal SKEY + BINDING block.\n *\n * File layout:\n * src/zui_foo.srvb.xml — metadata only\n *\n * Mirrors the minimal-block approach used by\n * zcl_abapgit_object_srvb (abapGit upstream serialiser).\n */\n\nimport { srvb } from '../../../schemas/generated';\nimport { createHandler, type SerializedFile } from '../base';\n\n// SRVB is not derived from AdkObject — we cast to the minimal handler shape\n// via the string form of createHandler.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SrvbLike = any;\n\nexport const serviceBindingHandler = createHandler<SrvbLike, typeof srvb>(\n 'SRVB',\n {\n schema: srvb,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SRVB',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SKEY: {\n TYPE: 'SRVB',\n NAME: String(obj?.name ?? '').toUpperCase(),\n },\n BINDING: {\n TYPE: 'odataV4',\n VERSION: '4',\n CATEGORY: 'odata_v4_ui',\n },\n }),\n\n fromAbapGit: ({ SKEY }) => ({\n name: String(SKEY?.NAME ?? '').toUpperCase(),\n }),\n\n // Metadata-only: emit just <name>.srvb.xml (no source file).\n async serialize(object, ctx): Promise<SerializedFile[]> {\n const objectName = ctx.getObjectName(object);\n const xmlContent = ctx.toAbapGitXml(object);\n return [\n ctx.createFile(`${objectName}.${ctx.fileExtension}.xml`, xmlContent),\n ];\n },\n },\n);\n","/**\n * abapGit Folder Logic\n *\n * Shared functions for resolving SAP package names from directory paths\n * using abapGit's folder logic (PREFIX/FULL).\n *\n * Used by both the serializer (import: SAP → Git) and deserializer (export: Git → SAP).\n */\n\nexport type FolderLogic = 'prefix' | 'full' | 'full-with-root';\n\nexport function stripSlashes(s: string): string {\n let start = 0;\n let end = s.length;\n while (start < end && s[start] === '/') start++;\n while (end > start && s[end - 1] === '/') end--;\n return s.slice(start, end);\n}\n\n/**\n * Parse FOLDER_LOGIC from .abapgit.xml content\n */\nexport function parseFolderLogicFromAbapGitXml(\n xmlContent: string,\n): FolderLogic | undefined {\n const match = /<FOLDER_LOGIC>([^<]+)<\\/FOLDER_LOGIC>/i.exec(xmlContent);\n if (!match) {\n return undefined;\n }\n\n const normalized = match[1]!.trim().toUpperCase();\n if (normalized === 'PREFIX') {\n return 'prefix';\n }\n if (normalized === 'FULL') {\n return 'full';\n }\n\n return undefined;\n}\n\n/**\n * Parse STARTING_FOLDER from .abapgit.xml content\n */\nexport function parseStartingFolderFromAbapGitXml(\n xmlContent: string,\n): string | undefined {\n const match = /<STARTING_FOLDER>([^<]+)<\\/STARTING_FOLDER>/i.exec(xmlContent);\n return match ? match[1]!.trim() : undefined;\n}\n\n/**\n * Parse abapGit repository metadata from .abapgit.xml content\n */\nexport function parseAbapGitMetadata(xmlContent: string): {\n folderLogic: FolderLogic;\n startingFolder: string;\n} {\n return {\n folderLogic: parseFolderLogicFromAbapGitXml(xmlContent) ?? 'prefix',\n startingFolder: parseStartingFolderFromAbapGitXml(xmlContent) ?? '/src/',\n };\n}\n\n/**\n * Reverse of calculatePackageDir — compute SAP package name from directory path\n *\n * Given a directory path relative to the starting folder, the folder logic,\n * and the root package name, compute the SAP package name.\n *\n * PREFIX mode: root 'ZABAPGIT_EXAMPLES' + dir 'clas' → 'ZABAPGIT_EXAMPLES_CLAS'\n * FULL mode: dir 'zabapgit_examples_clas' → 'ZABAPGIT_EXAMPLES_CLAS'\n *\n * @param dirPath - Directory path relative to starting folder\n * @param folderLogic - Folder logic mode (prefix or full)\n * @param rootPackage - Root SAP package name\n * @returns SAP package name\n */\nexport function resolvePackageFromDir(\n dirPath: string,\n folderLogic: FolderLogic,\n rootPackage: string,\n): string {\n if (!dirPath || dirPath === '.' || dirPath === '/') {\n return rootPackage;\n }\n\n const normalized = stripSlashes(dirPath);\n if (!normalized) return rootPackage;\n\n const parts = normalized.split('/').filter(Boolean);\n if (parts.length === 0) return rootPackage;\n\n switch (folderLogic) {\n case 'prefix': {\n let pkg = rootPackage;\n for (const part of parts) {\n pkg = pkg + '_' + part.toUpperCase();\n }\n return pkg;\n }\n\n case 'full':\n case 'full-with-root': {\n return parts.at(-1)!.toUpperCase();\n }\n\n default:\n return rootPackage;\n }\n}\n\n/**\n * Reverse of resolvePackageFromDir — given a SAP package name and the\n * relative directory of an object, back-derive the root package.\n *\n * PREFIX mode: sapPackage 'ZABAPGIT_EXAMPLES_FUGR' + dir 'fugr' → 'ZABAPGIT_EXAMPLES'\n * FULL mode: cannot derive root (returns undefined)\n *\n * @param sapPackage - Actual SAP package name (from GET response)\n * @param relDir - Directory path relative to starting folder\n * @param folderLogic - Folder logic mode\n * @returns Root package name, or undefined if it cannot be derived\n */\nexport function reverseResolveRootPackage(\n sapPackage: string,\n relDir: string,\n folderLogic: FolderLogic,\n): string | undefined {\n if (!relDir || relDir === '.' || relDir === '/') {\n return sapPackage; // Object is at root level — its package IS the root\n }\n\n const normalized = stripSlashes(relDir);\n if (!normalized) return sapPackage;\n\n const parts = normalized.split('/').filter(Boolean);\n if (parts.length === 0) return sapPackage;\n\n switch (folderLogic) {\n case 'prefix': {\n // In PREFIX mode: ROOT + _PART1 + _PART2 = sapPackage\n // So ROOT = sapPackage minus the suffix\n const suffix = '_' + parts.map((p) => p.toUpperCase()).join('_');\n if (sapPackage.toUpperCase().endsWith(suffix)) {\n return sapPackage.slice(0, -suffix.length);\n }\n return undefined;\n }\n\n case 'full':\n case 'full-with-root':\n // In FULL mode, package name IS the last directory segment —\n // cannot reliably derive the root\n return undefined;\n\n default:\n return undefined;\n }\n}\n\n/**\n * Parse folder logic from a string value (CLI option or config)\n */\nexport function parseFolderLogic(value: unknown): FolderLogic | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const normalized = value.trim().toLowerCase();\n if (\n normalized === 'prefix' ||\n normalized === 'full' ||\n normalized === 'full-with-root'\n ) {\n return normalized;\n }\n\n return undefined;\n}\n\n/**\n * Calculate package directory based on folder logic (for import/serialization)\n *\n * @param packagePath - Full package hierarchy from root to current\n * @param folderLogic - Folder logic mode\n * @returns Package directory relative to src/\n */\nexport function calculatePackageDir(\n packagePath: string[],\n folderLogic: FolderLogic,\n): string {\n if (packagePath.length === 0) {\n return '';\n }\n\n switch (folderLogic) {\n case 'prefix': {\n if (packagePath.length === 1) {\n return '';\n }\n\n const parts: string[] = [];\n for (let i = 1; i < packagePath.length; i++) {\n const fullName = packagePath[i];\n const parentName = packagePath[i - 1];\n const prefix = parentName + '_';\n const relativeName = fullName.startsWith(prefix)\n ? fullName.slice(prefix.length)\n : fullName;\n parts.push(relativeName.toLowerCase());\n }\n return parts.join('/');\n }\n\n case 'full': {\n return packagePath.map((p) => p.toLowerCase()).join('/');\n }\n\n case 'full-with-root': {\n return packagePath.map((p) => p.toLowerCase()).join('/');\n }\n\n default:\n return '';\n }\n}\n\n/**\n * Generate .abapgit.xml repository metadata file\n */\nexport function generateAbapGitXml(folderLogic: FolderLogic): string {\n const abapGitFolderLogic = folderLogic === 'prefix' ? 'PREFIX' : 'FULL';\n\n return `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<asx:abap xmlns:asx=\"http://www.sap.com/abapxml\" version=\"1.0\">\n <asx:values>\n <DATA>\n <MASTER_LANGUAGE>E</MASTER_LANGUAGE>\n <STARTING_FOLDER>/src/</STARTING_FOLDER>\n <FOLDER_LOGIC>${abapGitFolderLogic}</FOLDER_LOGIC>\n </DATA>\n </asx:values>\n</asx:abap>\n`;\n}\n","/**\n * abapGit Deserializer - Export (File → ADK)\n *\n * Reads abapGit format files and yields AdkObject instances.\n * Uses a true generator pattern for memory efficiency.\n *\n * Delegates type-specific deserialization to handlers via fromAbapGit().\n */\n\nimport type { FileTree, ExportOptions } from '@abapify/adt-plugin';\nimport type { AdkObject } from '@abapify/adk';\nimport { createAdk, type AdtClient } from '@abapify/adk';\nimport { getHandler, getSupportedTypes } from './handlers';\nimport {\n parseAbapGitMetadata,\n resolvePackageFromDir,\n stripSlashes,\n} from './folder-logic';\nimport { abapLangVerToAdt } from './handlers/lang';\nimport { extractFunctionDescriptors } from './handlers/objects/fugr';\n\n/**\n * abapGit file naming convention:\n * - XML metadata: {name}.{type}.xml (e.g., zcl_myclass.clas.xml)\n * - Source code: {name}.{type}.abap (e.g., zcl_myclass.clas.abap)\n * - Source includes: {name}.{type}.{suffix}.abap (e.g., zcl_myclass.clas.testclasses.abap)\n */\n\n/**\n * Parse abapGit filename to extract object info\n */\nexport function parseAbapGitFilename(filename: string): {\n name: string;\n type: string;\n suffix?: string;\n extension: string;\n} | null {\n // Match patterns like: name.type.xml or name.type.suffix.abap\n const match = filename.match(/^([^.]+)\\.([^.]+)(?:\\.([^.]+))?\\.(\\w+)$/);\n if (!match) return null;\n\n const [, name, type, suffixOrExt, extension] = match;\n\n // If 4 parts, middle is suffix; if 3 parts, no suffix\n if (extension === 'xml' || extension === 'abap') {\n return {\n name: name.toUpperCase(),\n type: type.toUpperCase(),\n suffix:\n suffixOrExt && suffixOrExt !== extension ? suffixOrExt : undefined,\n extension,\n };\n }\n\n return null;\n}\n\n/**\n * Group related files by object (name + type)\n */\ninterface ObjectFiles {\n name: string;\n type: string;\n xmlFile?: string;\n sourceFiles: Array<{ path: string; suffix?: string }>;\n}\n\n/**\n * Deserialize abapGit files to ADK objects\n *\n * True generator - yields objects one at a time as they're discovered.\n * Resolves packageRef using abapGit folder logic when rootPackage is provided.\n *\n * @param fileTree - Virtual file system to read from\n * @param client - ADT client for creating ADK objects\n * @param options - Export options (root package, language version, etc.)\n */\nexport async function* deserialize(\n fileTree: FileTree,\n client: AdtClient,\n options?: ExportOptions,\n): AsyncGenerator<AdkObject> {\n // Get ADK factory for creating objects\n const adk = createAdk(client);\n\n // Resolve folder logic from .abapgit.xml (optional — defaults used when missing)\n let folderLogic: import('./folder-logic').FolderLogic = 'prefix';\n let startDir = '';\n const hasAbapGitXml = await fileTree.exists('.abapgit.xml');\n if (hasAbapGitXml) {\n try {\n const xml = await fileTree.read('.abapgit.xml');\n const meta = parseAbapGitMetadata(xml);\n folderLogic = meta.folderLogic;\n startDir = stripSlashes(meta.startingFolder);\n } catch {\n // Fall through to defaults if XML parsing fails\n }\n }\n\n // Find all XML files (these define the objects)\n const xmlFiles = await fileTree.glob('**/*.xml');\n\n // Filter to supported types and group by object\n const objectMap = new Map<string, ObjectFiles>();\n const supportedTypes = new Set(\n getSupportedTypes().map((t) => t.toLowerCase()),\n );\n\n for (const xmlPath of xmlFiles) {\n // Skip .abapgit.xml metadata file\n if (xmlPath.endsWith('.abapgit.xml')) continue;\n\n // Skip package.devc.xml - packages are not deployed, they must exist in target\n if (xmlPath.endsWith('package.devc.xml')) continue;\n\n const filename = xmlPath.split('/').pop()!;\n const parsed = parseAbapGitFilename(filename);\n\n if (!parsed) continue;\n if (!supportedTypes.has(parsed.type.toLowerCase())) continue;\n\n // For compound objects (e.g., FUGR), multiple XML files share the same\n // name:type key. Only the main XML (no suffix) is the metadata file;\n // include XMLs (with suffix, e.g., PROGDIR) are sub-artifacts.\n if (parsed.suffix) continue;\n\n const key = `${parsed.name}:${parsed.type}`;\n\n if (!objectMap.has(key)) {\n objectMap.set(key, {\n name: parsed.name,\n type: parsed.type,\n sourceFiles: [],\n });\n }\n\n const obj = objectMap.get(key)!;\n obj.xmlFile = xmlPath;\n }\n\n // Find source files for each object\n const abapFiles = await fileTree.glob('**/*.abap');\n\n for (const abapPath of abapFiles) {\n const filename = abapPath.split('/').pop()!;\n const parsed = parseAbapGitFilename(filename);\n\n if (!parsed) continue;\n\n const key = `${parsed.name}:${parsed.type}`;\n const obj = objectMap.get(key);\n\n if (obj) {\n obj.sourceFiles.push({ path: abapPath, suffix: parsed.suffix });\n }\n }\n\n // Process each object and yield\n for (const [, objFiles] of objectMap) {\n if (!objFiles.xmlFile) continue;\n\n const handler = getHandler(objFiles.type);\n if (!handler) continue;\n\n try {\n // Read and parse XML using handler's schema\n const xmlContent = await fileTree.read(objFiles.xmlFile);\n const parsed = handler.schema.parse(xmlContent);\n // Schema parses to { abapGit: { abap: { values: ... } } }\n const values = (parsed as any)?.abapGit?.abap?.values ?? {};\n\n // Read source files, mapping suffixes using handler's suffixToSourceKey\n const sources: Record<string, string> = {};\n for (const { path, suffix } of objFiles.sourceFiles) {\n const content = await fileTree.read(path);\n // Map suffix to source key using handler's mapping, or use suffix as-is\n const sourceKey = suffix\n ? (handler.suffixToSourceKey?.[suffix] ?? suffix)\n : 'main';\n sources[sourceKey] = content;\n }\n\n // Get payload from handler (pure data mapping) or build default\n const payload: {\n name: string;\n description?: string;\n [key: string]: unknown;\n } = handler.fromAbapGit\n ? handler.fromAbapGit(values)\n : { name: objFiles.name };\n\n // Use filename as fallback if name not in XML (e.g., DEVC)\n const objectName = payload.name || objFiles.name;\n\n // Build full data object with name\n const fullData = { ...payload, name: objectName };\n\n // Create ADK object with data (pre-loaded, no need to call load())\n // Use payload type if available (e.g., TABL/DS for structures),\n // falling back to filename-derived type\n const adkType =\n typeof payload.type === 'string' ? payload.type : objFiles.type;\n const adkObject = adk.getWithData(fullData, adkType) as AdkObject;\n\n // Set sources on object using handler's setSources method\n if (Object.keys(sources).length > 0) {\n if (handler.setSources) {\n handler.setSources(adkObject, sources);\n } else {\n // Fallback: store sources directly if handler doesn't provide setSources\n if (sources['main']) {\n (adkObject as any)._pendingSource = sources['main'];\n }\n if (Object.keys(sources).length > 1) {\n (adkObject as any)._pendingSources = sources;\n }\n }\n }\n\n // Store additional payload properties\n if (payload.description) {\n (adkObject as any)._pendingDescription = payload.description;\n }\n\n // Compute relative directory and store on object for package resolution\n // This metadata is always computed so the export command can auto-detect\n // the root package from SAP and resolve packages later if needed.\n if (hasAbapGitXml) {\n const sourceDir = objFiles.xmlFile.split('/').slice(0, -1).join('/');\n const relDir = sourceDir.startsWith(startDir)\n ? sourceDir.slice(startDir.length).replace(/^\\/+/, '')\n : sourceDir;\n (adkObject as any)._relDir = relDir;\n (adkObject as any)._folderLogic = folderLogic;\n }\n\n // Resolve packageRef when rootPackage is explicitly provided\n if (options?.rootPackage) {\n const data = (adkObject as any)._data;\n if (data && !data.packageRef) {\n if (hasAbapGitXml) {\n const relDir = (adkObject as any)._relDir ?? '';\n const pkgName = resolvePackageFromDir(\n relDir,\n folderLogic,\n options.rootPackage,\n );\n data.packageRef = { name: pkgName };\n } else {\n // No .abapgit.xml: assign rootPackage directly\n data.packageRef = { name: options.rootPackage };\n }\n }\n }\n\n // Set abapLanguageVersion if provided and not already set\n // Map numeric codes (\"5\") to ADT values (\"cloudDevelopment\")\n if (options?.abapLanguageVersion) {\n const data = (adkObject as any)._data;\n if (data && !data.abapLanguageVersion) {\n data.abapLanguageVersion =\n abapLangVerToAdt(options.abapLanguageVersion) ??\n options.abapLanguageVersion;\n }\n }\n\n yield adkObject;\n\n // For compound objects (FUGR), yield child objects (function modules)\n if (objFiles.type === 'FUGR' && payload._functions) {\n const fmDescriptors = extractFunctionDescriptors(payload._functions);\n const fmSources = (adkObject as any)._pendingFmSources as\n | Record<string, string>\n | undefined;\n\n for (const fm of fmDescriptors) {\n try {\n // Build FM data object with _groupName for factory construction\n const fmData: Record<string, unknown> = {\n name: fm.funcName,\n type: 'FUGR/FF',\n _groupName: objectName, // parent FUGR name\n description: fm.shortText ?? '',\n processingType: fm.processingType,\n basXMLEnabled: fm.basXMLEnabled,\n };\n\n const fmObject = adk.getWithData(fmData, 'FUGR/FF') as AdkObject;\n\n // Set FM source if available\n const fmSourceKey = fm.funcName.toLowerCase();\n const fmSource = fmSources?.[fmSourceKey];\n if (fmSource) {\n (fmObject as any)._pendingSource = fmSource;\n }\n\n // Set abapLanguageVersion if provided\n if (options?.abapLanguageVersion) {\n const fmObjData = (fmObject as any)._data;\n if (fmObjData && !fmObjData.abapLanguageVersion) {\n fmObjData.abapLanguageVersion =\n abapLangVerToAdt(options.abapLanguageVersion) ??\n options.abapLanguageVersion;\n }\n }\n\n yield fmObject;\n } catch (fmError) {\n console.error(\n `Failed to deserialize FM ${fm.funcName} in FUGR ${objectName}:`,\n fmError,\n );\n }\n }\n }\n } catch (error) {\n // Log error but continue with other objects\n console.error(\n `Failed to deserialize ${objFiles.type} ${objFiles.name}:`,\n error,\n );\n }\n }\n}\n","/**\n * abapGit as a FormatPlugin.\n *\n * This is the thin adapter that plugs the abapGit handler registry into the\n * generic `FormatPlugin` contract defined by `@abapify/adt-plugin`. External\n * consumers (adt-export, adt-diff, adt-cli) interact with this plugin\n * **through the registry only** — they look it up with\n * `getFormatPlugin('abapgit')` and never import this package directly.\n *\n * Registration happens as a side-effect of importing `@abapify/adt-plugin-abapgit`;\n * the CLI bootstraps the registration once in `adt-cli/src/lib/cli.ts`.\n */\n\nimport type { FormatPlugin, FormatHandler } from '@abapify/adt-plugin';\nimport {\n getHandler as getAbapGitHandler,\n getSupportedTypes,\n} from './handlers/registry';\nimport { parseAbapGitFilename } from './deserializer';\n\nexport const abapgitFormatPlugin: FormatPlugin = {\n id: 'abapgit',\n description: 'abapGit serialization format',\n\n // `supportedTypes` is backed by the live handler registry so registering\n // additional handlers at import time is reflected here without extra work.\n get supportedTypes(): ReadonlyArray<string> {\n return getSupportedTypes();\n },\n\n getHandler(type: string): FormatHandler | undefined {\n // The concrete abapGit `ObjectHandler` is a structural superset of the\n // generic `FormatHandler`, so this is just a widening cast.\n return getAbapGitHandler(type) as unknown as FormatHandler | undefined;\n },\n\n parseFilename(filename: string) {\n const parsed = parseAbapGitFilename(filename);\n return parsed ?? undefined;\n },\n};\n\nexport default abapgitFormatPlugin;\n","import { mkdirSync, writeFileSync } from 'fs';\nimport { join } from 'path';\nimport type { AdkObject } from '@abapify/adk';\nimport { getTypeForKind } from '@abapify/adk';\nimport { getHandler } from './handlers';\n\n/**\n * Serialize ADK objects to abapGit format\n *\n * This class uses the handler registry to delegate serialization\n * to type-specific handlers.\n */\nexport class AbapGitSerializer {\n /**\n * Serialize a single object (called by plugin API)\n */\n async serializeObjectPublic(\n obj: AdkObject,\n targetPath: string,\n packageDir: string,\n ): Promise<string[]> {\n const fullPackageDir = join(targetPath, 'src', packageDir);\n mkdirSync(fullPackageDir, { recursive: true });\n\n // Get object type from ADK kind mapping\n const objectType = getTypeForKind(obj.kind) ?? obj.type;\n const handler = getHandler(objectType);\n\n if (!handler) {\n throw new Error(\n `No handler available for object type: ${objectType} (kind: ${obj.kind})`,\n );\n }\n\n // Serialize using handler\n const serializedFiles = await handler.serialize(obj);\n\n // Write files to disk\n const writtenFiles: string[] = [];\n for (const file of serializedFiles) {\n const filePath = join(fullPackageDir, file.path);\n writeFileSync(filePath, file.content, file.encoding ?? 'utf8');\n writtenFiles.push(filePath);\n }\n\n return writtenFiles;\n }\n}\n","import {\n createPlugin,\n type AdtPlugin,\n type ImportContext,\n type DeleteResult,\n} from '@abapify/adt-plugin';\nimport type { AdtClient } from '@abapify/adk';\nimport { AbapGitSerializer } from './serializer';\nimport { getSupportedTypes, isSupported } from './handlers';\nimport { deserialize } from './deserializer';\nimport {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n unlinkSync,\n readdirSync,\n} from 'fs';\nimport { join, relative, basename } from 'path';\n\nimport {\n type FolderLogic,\n parseFolderLogic,\n parseFolderLogicFromAbapGitXml,\n calculatePackageDir,\n generateAbapGitXml,\n resolvePackageFromDir,\n parseAbapGitMetadata,\n} from './folder-logic';\n\nconst serializer = new AbapGitSerializer();\n\n// Store folder logic for afterImport hook (set during import, read in afterImport)\nlet currentFolderLogic: FolderLogic = 'prefix';\n\n/**\n * Recursively collect all file paths under a directory.\n */\nfunction walkDir(dir: string, results: string[] = []): string[] {\n if (!existsSync(dir)) return results;\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {\n walkDir(full, results);\n } else {\n results.push(full);\n }\n }\n return results;\n}\n\n/**\n * Lazy per-srcDir file index.\n *\n * Maps srcDir → (prefix → [absolute file paths]), where prefix is\n * `${name}.${type}.` in lower-case. Built at most once per srcDir per\n * process, so the O(repo-size) directory walk is amortised across all\n * `format.delete()` calls in a single import run instead of repeated for\n * every deleted object.\n */\nconst srcDirIndexCache = new Map<string, Map<string, string[]>>();\n\nfunction getOrBuildSrcIndex(srcDir: string): Map<string, string[]> {\n const cached = srcDirIndexCache.get(srcDir);\n if (cached) return cached;\n\n const index = new Map<string, string[]>();\n for (const filePath of walkDir(srcDir)) {\n const fname = basename(filePath).toLowerCase();\n // Extract the \"<name>.<type>.\" prefix (first two dot-segments + trailing dot)\n const first = fname.indexOf('.');\n if (first === -1) continue;\n const second = fname.indexOf('.', first + 1);\n if (second === -1) continue;\n const key = fname.substring(0, second + 1); // e.g. \"zcl_foo.clas.\"\n const bucket = index.get(key);\n if (bucket) {\n bucket.push(filePath);\n } else {\n index.set(key, [filePath]);\n }\n }\n srcDirIndexCache.set(srcDir, index);\n return index;\n}\n\n/**\n * Find all abapGit files for a given object name and type.\n *\n * abapGit naming convention: `{name}.{type}[.suffix].{ext}`\n * e.g. `zcl_foo.clas.xml`, `zcl_foo.clas.locals_def.abap`\n *\n * Matching is done on the filename base: `{name}.{type}.`. SAP ABAP object\n * names and types **never contain a dot**, so the prefix is unambiguous —\n * `ztabl_del.tabl.` cannot accidentally match `ztabl_del_ext.tabl.xml`\n * because the separator after `ztabl_del` in the prefix is `.` while the\n * other file has `_ext.`.\n *\n * Uses a lazy per-srcDir index so the directory tree is walked at most once\n * per deletion batch rather than once per object.\n */\nfunction findObjectFiles(srcDir: string, name: string, type: string): string[] {\n const prefix = `${name.toLowerCase()}.${type.toLowerCase()}.`;\n return getOrBuildSrcIndex(srcDir).get(prefix) ?? [];\n}\n\nfunction readFolderLogicFromExistingRepo(\n targetPath: string,\n): FolderLogic | undefined {\n const abapgitXmlPath = join(targetPath, '.abapgit.xml');\n if (!existsSync(abapgitXmlPath)) {\n return undefined;\n }\n\n try {\n const xmlContent = readFileSync(abapgitXmlPath, 'utf-8');\n return parseFolderLogicFromAbapGitXml(xmlContent);\n } catch {\n return undefined;\n }\n}\n\nfunction resolveFolderLogic(\n context: ImportContext,\n targetPath: string,\n): FolderLogic {\n const cliFolderLogic = parseFolderLogic(context.formatOptions?.folderLogic);\n if (cliFolderLogic) {\n return cliFolderLogic;\n }\n\n const existingRepoFolderLogic = readFolderLogicFromExistingRepo(targetPath);\n if (existingRepoFolderLogic) {\n return existingRepoFolderLogic;\n }\n\n const configuredFolderLogic = parseFolderLogic(\n context.configFormatOptions?.folderLogic,\n );\n if (configuredFolderLogic) {\n return configuredFolderLogic;\n }\n\n return 'prefix';\n}\n\n/**\n * abapGit Plugin\n *\n * Provides import/export of ADK objects to abapGit repository format.\n */\nexport const abapGitPlugin: AdtPlugin = createPlugin({\n name: 'abapGit',\n version: '1.0.0',\n description: 'abapGit format plugin for ADK objects',\n\n // Registry service\n registry: {\n isSupported,\n getSupportedTypes,\n },\n\n // Format service\n format: {\n async import(object, targetPath, context) {\n try {\n // Get the object's package - for DEVC objects, use name; for others, use package property\n // Note: object.type might be 'DEVC/K' not just 'DEVC'\n const isPackage = object.type?.startsWith('DEVC');\n const objPackage = isPackage\n ? object.name\n : (object as any).package || object.name || 'ROOT';\n\n // Resolve full package path from SAP (root → ... → current)\n // This uses ADK to load package hierarchy via super package references\n const packagePath = await context.resolvePackagePath(objPackage);\n\n // Resolve folder logic with precedence:\n // 1) CLI format options\n // 2) Existing .abapgit.xml in target repository\n // 3) adt.config.ts format options\n // 4) Plugin default\n const folderLogic = resolveFolderLogic(context, targetPath);\n\n // Store for afterImport hook\n currentFolderLogic = folderLogic;\n\n // Calculate package directory based on folder logic\n const packageDir = calculatePackageDir(packagePath, folderLogic);\n\n // Delegate to serializer which handles lazy loading\n const files = await serializer.serializeObjectPublic(\n object,\n targetPath,\n packageDir,\n );\n\n return {\n success: true,\n filesCreated: files,\n };\n } catch (error) {\n return {\n success: false,\n filesCreated: [],\n errors: [error instanceof Error ? error.message : String(error)],\n };\n }\n },\n\n /**\n * Export abapGit files to SAP\n *\n * Reads abapGit format files from FileTree and yields AdkObject instances.\n * True generator - streams objects one at a time for memory efficiency.\n *\n * @param fileTree - Virtual file system abstraction\n * @param client - ADT client for creating ADK objects\n */\n export: (fileTree, client, options?) =>\n deserialize(fileTree, client as AdtClient, options),\n\n /**\n * Delete local abapGit files for an object marked for deletion in SAP.\n *\n * Searches the `<targetPath>/src/` directory tree for files matching\n * the abapGit naming pattern `{name}.{type}[.suffix].{ext}` and removes\n * each one.\n *\n * Known limitation: if the object never made it into the repository (e.g.\n * PROG deletions without obj_func=D), no files are present and nothing\n * happens. This is expected behavior.\n */\n async delete(\n objectRef: { pgmid: string; type: string; name: string },\n targetPath: string,\n _context: ImportContext,\n ): Promise<DeleteResult> {\n try {\n const srcDir = join(targetPath, 'src');\n const matchedFiles = findObjectFiles(\n srcDir,\n objectRef.name,\n objectRef.type,\n );\n\n const filesRemoved: string[] = [];\n const errors: string[] = [];\n for (const filePath of matchedFiles) {\n try {\n unlinkSync(filePath);\n filesRemoved.push(relative(targetPath, filePath));\n } catch (error) {\n const unlinkError = error as NodeJS.ErrnoException;\n if (unlinkError.code === 'ENOENT') {\n // File is already gone, treat as success because the desired end state is reached.\n filesRemoved.push(relative(targetPath, filePath));\n continue;\n }\n\n errors.push(\n error instanceof Error\n ? `Failed to delete ${relative(targetPath, filePath)}: ${error.message}`\n : `Failed to delete ${relative(targetPath, filePath)}: ${String(error)}`,\n );\n }\n }\n\n return {\n success: errors.length === 0,\n filesRemoved,\n ...(errors.length > 0 ? { errors } : {}),\n };\n } catch (error) {\n return {\n success: false,\n filesRemoved: [],\n errors: [error instanceof Error ? error.message : String(error)],\n };\n }\n },\n },\n\n // Lifecycle hooks\n hooks: {\n async afterImport(targetPath) {\n // Ensure target directory exists before writing metadata\n mkdirSync(targetPath, { recursive: true });\n // Generate .abapgit.xml metadata file after import completes\n const abapgitXmlPath = join(targetPath, '.abapgit.xml');\n const abapgitXmlContent = generateAbapGitXml(currentFolderLogic);\n writeFileSync(abapgitXmlPath, abapgitXmlContent, 'utf-8');\n },\n },\n});\n\nexport const __testing = {\n calculatePackageDir,\n generateAbapGitXml,\n parseFolderLogic,\n parseFolderLogicFromAbapGitXml,\n readFolderLogicFromExistingRepo,\n resolveFolderLogic,\n resolvePackageFromDir,\n parseAbapGitMetadata,\n};\n\n// Export for named imports\nexport { abapGitPlugin as AbapGitPlugin };\n\n// Export for default import (dynamic loading)\nexport default abapGitPlugin;\n","/**\n * Convert an ADT URI to an on-disk abapGit filename.\n *\n * abapGit stores objects as `<name>.<type>.<ext>` inside `src/`.\n * Classes have additional includes serialised as\n * `<name>.clas.<suffix>.abap`. Function modules become\n * `<group>.fugr.<fm_name>.abap`. Namespaces are rendered as\n * `(namespace)name`.\n *\n * Returns `null` for URIs we don't recognise; callers may warn or fall\n * back to a synthetic path.\n */\n\nimport { ABAPGIT_SUFFIX } from '../handlers/objects/clas';\n\n// ──────────────────────────────────────────────────────────────────────\n// Helpers\n// ──────────────────────────────────────────────────────────────────────\n\n/**\n * Apply abapGit namespace transform: `/MYNS/zcl_foo` → `(myns)zcl_foo`.\n * Case is lower-cased afterwards; name without namespace returned as-is\n * (lower-cased).\n */\nfunction applyNamespace(raw: string): string {\n const nsMatch = /^\\/([^/]+)\\/(.*)$/.exec(raw);\n if (nsMatch) {\n const [, ns, rest] = nsMatch;\n return `(${ns.toLowerCase()})${rest.toLowerCase()}`;\n }\n return raw.toLowerCase();\n}\n\nfunction stripFragment(uri: string): string {\n const hashIndex = uri.indexOf('#');\n return hashIndex >= 0 ? uri.slice(0, hashIndex) : uri;\n}\n\n// Class include → abapGit suffix (reversed view of ABAPGIT_SUFFIX).\nconst CLASS_INCLUDE_TO_SUFFIX: Record<string, string | undefined> = {\n testclasses: ABAPGIT_SUFFIX.testclasses,\n definitions: ABAPGIT_SUFFIX.definitions,\n implementations: ABAPGIT_SUFFIX.implementations,\n macros: ABAPGIT_SUFFIX.macros,\n localtypes: ABAPGIT_SUFFIX.localtypes,\n};\n\n// ──────────────────────────────────────────────────────────────────────\n// Individual URI shape handlers\n// ──────────────────────────────────────────────────────────────────────\n\ninterface Rule {\n test: RegExp;\n build: (m: RegExpMatchArray) => string;\n}\n\n// Order matters – most specific first.\nconst RULES: Rule[] = [\n // /sap/bc/adt/oo/classes/<name>/includes/<include>\n {\n test: /^\\/sap\\/bc\\/adt\\/oo\\/classes\\/([^/]+)\\/includes\\/([^/]+)$/,\n build: (m) => {\n const name = applyNamespace(decodeURIComponent(m[1]));\n const include = m[2].toLowerCase();\n const suffix = CLASS_INCLUDE_TO_SUFFIX[include];\n return suffix\n ? `src/${name}.clas.${suffix}.abap`\n : `src/${name}.clas.${include}.abap`;\n },\n },\n // /sap/bc/adt/oo/classes/<name>/source/main\n {\n test: /^\\/sap\\/bc\\/adt\\/oo\\/classes\\/([^/]+)\\/source\\/main$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.clas.abap`,\n },\n // /sap/bc/adt/oo/classes/<name>\n {\n test: /^\\/sap\\/bc\\/adt\\/oo\\/classes\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.clas.abap`,\n },\n\n // Interfaces\n {\n test: /^\\/sap\\/bc\\/adt\\/oo\\/interfaces\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.intf.abap`,\n },\n\n // Programs\n {\n test: /^\\/sap\\/bc\\/adt\\/programs\\/programs\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.prog.abap`,\n },\n\n // Function group – metadata only\n {\n test: /^\\/sap\\/bc\\/adt\\/functions\\/groups\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.fugr.xml`,\n },\n // Function modules – /fmodules/<fm>\n {\n test: /^\\/sap\\/bc\\/adt\\/functions\\/groups\\/([^/]+)\\/fmodules\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => {\n const group = applyNamespace(decodeURIComponent(m[1]));\n const fm = applyNamespace(decodeURIComponent(m[2]));\n return `src/${group}.fugr.${fm}.abap`;\n },\n },\n // Function group includes – /includes/<name>\n {\n test: /^\\/sap\\/bc\\/adt\\/functions\\/groups\\/([^/]+)\\/includes\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => {\n const group = applyNamespace(decodeURIComponent(m[1]));\n const inc = applyNamespace(decodeURIComponent(m[2]));\n return `src/${group}.fugr.${inc}.abap`;\n },\n },\n\n // CDS DDL source\n {\n test: /^\\/sap\\/bc\\/adt\\/ddic\\/ddl\\/sources\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.ddls.asddls`,\n },\n // CDS DCL source\n {\n test: /^\\/sap\\/bc\\/adt\\/acm\\/dcl\\/sources\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.dcls.asdcls`,\n },\n\n // RAP Behavior Definition (BDEF) — `.abdl` source\n {\n test: /^\\/sap\\/bc\\/adt\\/bo\\/behaviordefinitions\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.bdef.abdl`,\n },\n\n // RAP Service Definition (SRVD) — `.asrvd` source\n {\n test: /^\\/sap\\/bc\\/adt\\/ddic\\/srvd\\/sources\\/([^/]+?)(?:\\/source\\/main)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.srvd.asrvd`,\n },\n\n // RAP Service Binding (SRVB) — metadata-only\n // Also matches the `/publishedstates` suffix so publish/unpublish endpoints\n // map to the same on-disk file.\n {\n test: /^\\/sap\\/bc\\/adt\\/businessservices\\/bindings\\/([^/]+?)(?:\\/publishedstates)?$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.srvb.xml`,\n },\n\n // DDIC domain / data element / structure / table / type\n {\n test: /^\\/sap\\/bc\\/adt\\/ddic\\/domains\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.doma.xml`,\n },\n {\n test: /^\\/sap\\/bc\\/adt\\/ddic\\/dataelements\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.dtel.xml`,\n },\n {\n test: /^\\/sap\\/bc\\/adt\\/ddic\\/structures\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.tabl.xml`,\n },\n {\n test: /^\\/sap\\/bc\\/adt\\/ddic\\/tables\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.tabl.xml`,\n },\n\n // Package\n {\n test: /^\\/sap\\/bc\\/adt\\/packages\\/([^/]+)$/,\n build: (m) => `src/${applyNamespace(decodeURIComponent(m[1]))}.devc.xml`,\n },\n];\n\n/**\n * Convert an ADT URI to the abapGit on-disk filename (lower-cased,\n * namespace-aware). Returns `null` when the URI shape is not recognised.\n */\nexport function adtUriToAbapGitPath(uri: string): string | null {\n if (!uri) return null;\n const clean = stripFragment(uri).trim();\n for (const rule of RULES) {\n const m = rule.test.exec(clean);\n if (m) return rule.build(m);\n }\n return null;\n}\n","import { registerFormatPlugin } from '@abapify/adt-plugin';\nimport { abapgitFormatPlugin } from './lib/format-plugin';\n\n// Self-register as a FormatPlugin at module-load time. Idempotent — safe\n// against dual module-graph evaluation.\nregisterFormatPlugin(abapgitFormatPlugin);\n\n// FormatPlugin export (the preferred public entry-point going forward)\nexport { abapgitFormatPlugin } from './lib/format-plugin';\n\n// Plugin instance\nexport { abapGitPlugin, AbapGitPlugin } from './lib/abapgit';\n\n// Finding resolver for ATC integration\nexport { createFindingResolver } from './lib/finding-resolver';\n\n// Handler registry — for consumers that need to work with handlers directly\nexport {\n getHandler,\n isSupported,\n getSupportedTypes,\n} from './lib/handlers/registry';\nexport type { SerializedFile, ObjectHandler } from './lib/handlers/base';\n\n// Filename parser — shared utility for abapGit file naming convention\nexport { parseAbapGitFilename } from './lib/deserializer';\n\n// ADT URI → abapGit on-disk filename (used for coverage / SonarQube reports)\nexport { adtUriToAbapGitPath } from './lib/filename/adt-uri-to-path';\n\n// XML formatting utilities — shared across serializers and roundtrip\nexport {\n formatXmlAttributes,\n moveNamespaceToAbap,\n formatAbapGitXml,\n} from './lib/handlers/xml-format';\n\n// Folder logic — package resolution from directory paths\nexport {\n resolvePackageFromDir,\n reverseResolveRootPackage,\n parseAbapGitMetadata,\n type FolderLogic,\n} from './lib/folder-logic';\n\n// Re-export types from @abapify/adt-plugin for convenience\nexport type {\n AdtPlugin,\n AbapObjectType,\n ImportContext,\n ImportResult,\n ExportContext,\n ExportResult,\n} from '@abapify/adt-plugin';\n\n// Default export for dynamic loading\nexport { abapGitPlugin as default } from './lib/abapgit';\n"],"mappings":"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CD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;ACjLD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,YACN,CACF,EACF;IACD,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACF;IACF;GACF;EACD;GACE,MAAM;GACN,UAAU;GACX;EACD;GACE,MAAM;GACN,MAAM;GACP;EACD;GACE,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;AC5FD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,YACN,CACF,EACF;IACD,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACF;IACF;GACF;EACD;GACE,MAAM;GACN,UAAU;GACX;EACD;GACE,MAAM;GACN,MAAM;GACP;EACD;GACE,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,EACD;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;AC/MD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,YACN,CACF,EACF;IACD,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACF;IACF;GACF;EACD;GACE,MAAM;GACN,UAAU;GACX;EACD;GACE,MAAM;GACN,MAAM;GACP;EACD;GACE,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;AC3LD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,YACN,CACF,EACF;IACD,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACF;IACF;GACF;EACD;GACE,MAAM;GACN,UAAU;GACX;EACD;GACE,MAAM;GACN,MAAM;GACP;EACD;GACE,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;AC1HD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,aAAa;GACX,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW;IACT;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACF;GACF;EACF,EACD;EACE,MAAM;EACN,UAAU;EACX,CACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,EACD;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,KAAK;IACL,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACF;CACF;;;;;;;;;;ACjMD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,aAAa;GACX,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW;IACT;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACF;GACF;EACF,EACD;EACE,MAAM;EACN,UAAU;EACX,CACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,KAAK;IACL,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACF;CACF;;;;;;;;;;AClYD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,YACN,CACF,EACF;IACD,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACF;IACF;GACF;EACD;GACE,MAAM;GACN,UAAU;GACX;EACD;GACE,MAAM;GACN,MAAM;GACP;EACD;GACE,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;AC7ZD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,YACN,CACF,EACF;IACD,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACD;MACE,MAAM;MACN,MAAM;MACN,KAAK;MACN;KACF;IACF;GACF;EACD;GACE,MAAM;GACN,UAAU;GACX;EACD;GACE,MAAM;GACN,MAAM;GACP;EACD;GACE,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACP;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACD;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACZ;IACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;AClKD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,aAAa;GACX,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW;IACT;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACF;GACF;EACF,EACD;EACE,MAAM;EACN,UAAU;EACX,CACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,EACD;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,KAAK;IACL,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;ACxHD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,aAAa;GACX,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW;IACT;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACF;GACF;EACF,EACD;EACE,MAAM;EACN,UAAU;EACX,CACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,EACD;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,KAAK;IACL,WAAW;IACX,WAAW;IACZ,CACF,EACF;GACF;EACD;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,cACN,CACF,EACF;GACD,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,CACF;GACF;EACF;CACF;;;;;;;;;;ACxHD,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;EACN;CACD,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,aAAa;GACX,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF,EACF;GACD,WAAW;IACT;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACD;KACE,MAAM;KACN,MAAM;KACN,KAAK;KACN;IACF;GACF;EACF,EACD;EACE,MAAM;EACN,UAAU;EACX,CACF;CACD,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACZ,EACD;IACE,MAAM;IACN,MAAM;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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["_clas","_devc","_doma","_dtel","_intf","_prog","_fugr","_tabl","_ttyp","_bdef","_srvd","_srvb","_dcls","_ddls","_ddlx","_msag","_view","_enqu","_shlp","_tran","_type","_xslt","_enho","_enhs","_http","_nrob","_chdo","_smtg","_sfpf","_scp1","_sicf","_srfc","_idoc","_iobj","_odso","_shma","_styl","_susc","_sucu","_sxci","_smim","_sqsc","_suso","_sush","_sktd","_form","_tdlines","_xinx","_para","_pers","_oa2p","_splo","_tobj","_sprx","_sots","_iarp","_iasp","_char","_auth","_area","_avar","_jobd","_nspc","_pinf","_vcls","_stvi","_sod1","_sod2","_shi3","_shi5","_shi8","_scvi","_acid","_avas","_cmod","_dial","_enhc","_ensc","_otgr","_sfsw","_ssst","_sfbf","_sfbs","_sxsd","_ucsa","_udmo","_iaxu","_iext","_samc","_sapc","_dsys","_ftgl","_prag","_cus0","_cus1","_cus2","_docv","_doct","_cmpt","_amsd","_apis","_wdya","_webi","_wdca","_wdcc","_pdts","_w3ht","_w3mi","_iatu","_iamu","_drul","_aifc","_aqbg","_aqqu","_aqsg","_asfc","_g4ba","_g4bs","_iwmo","_iwom","_iwpr","_iwsg","_iwsv","_iwvb","_sldd","_sobj","_sppf","_ueno","_ecat","_ecsd","_ecsp","_ectc","_ectd","_ecvo","_fdt0","_sfpi","_ssfo","_wapa","_wdyn","typeSchema","getAbapGitHandler","unlinkError"],"sources":["../src/lib/handlers/xml-format.ts","../src/lib/handlers/base.ts","../src/lib/handlers/abapgit-schema.ts","../src/schemas/generated/schemas/clas.ts","../src/schemas/generated/schemas/devc.ts","../src/schemas/generated/schemas/doma.ts","../src/schemas/generated/schemas/dtel.ts","../src/schemas/generated/schemas/intf.ts","../src/schemas/generated/schemas/prog.ts","../src/schemas/generated/schemas/fugr.ts","../src/schemas/generated/schemas/tabl.ts","../src/schemas/generated/schemas/ttyp.ts","../src/schemas/generated/schemas/bdef.ts","../src/schemas/generated/schemas/srvd.ts","../src/schemas/generated/schemas/srvb.ts","../src/schemas/generated/schemas/dcls.ts","../src/schemas/generated/schemas/ddls.ts","../src/schemas/generated/schemas/ddlx.ts","../src/schemas/generated/schemas/msag.ts","../src/schemas/generated/schemas/view.ts","../src/schemas/generated/schemas/enqu.ts","../src/schemas/generated/schemas/shlp.ts","../src/schemas/generated/schemas/tran.ts","../src/schemas/generated/schemas/type.ts","../src/schemas/generated/schemas/xslt.ts","../src/schemas/generated/schemas/enho.ts","../src/schemas/generated/schemas/enhs.ts","../src/schemas/generated/schemas/http.ts","../src/schemas/generated/schemas/nrob.ts","../src/schemas/generated/schemas/chdo.ts","../src/schemas/generated/schemas/smtg.ts","../src/schemas/generated/schemas/sfpf.ts","../src/schemas/generated/schemas/scp1.ts","../src/schemas/generated/schemas/sicf.ts","../src/schemas/generated/schemas/srfc.ts","../src/schemas/generated/schemas/idoc.ts","../src/schemas/generated/schemas/iobj.ts","../src/schemas/generated/schemas/odso.ts","../src/schemas/generated/schemas/shma.ts","../src/schemas/generated/schemas/styl.ts","../src/schemas/generated/schemas/susc.ts","../src/schemas/generated/schemas/sucu.ts","../src/schemas/generated/schemas/sxci.ts","../src/schemas/generated/schemas/smim.ts","../src/schemas/generated/schemas/sqsc.ts","../src/schemas/generated/schemas/suso.ts","../src/schemas/generated/schemas/sush.ts","../src/schemas/generated/schemas/sktd.ts","../src/schemas/generated/schemas/form.ts","../src/schemas/generated/schemas/tdlines.ts","../src/schemas/generated/schemas/xinx.ts","../src/schemas/generated/schemas/para.ts","../src/schemas/generated/schemas/pers.ts","../src/schemas/generated/schemas/oa2p.ts","../src/schemas/generated/schemas/splo.ts","../src/schemas/generated/schemas/tobj.ts","../src/schemas/generated/schemas/sprx.ts","../src/schemas/generated/schemas/sots.ts","../src/schemas/generated/schemas/iarp.ts","../src/schemas/generated/schemas/iasp.ts","../src/schemas/generated/schemas/char.ts","../src/schemas/generated/schemas/auth.ts","../src/schemas/generated/schemas/area.ts","../src/schemas/generated/schemas/avar.ts","../src/schemas/generated/schemas/jobd.ts","../src/schemas/generated/schemas/nspc.ts","../src/schemas/generated/schemas/pinf.ts","../src/schemas/generated/schemas/vcls.ts","../src/schemas/generated/schemas/stvi.ts","../src/schemas/generated/schemas/sod1.ts","../src/schemas/generated/schemas/sod2.ts","../src/schemas/generated/schemas/shi3.ts","../src/schemas/generated/schemas/shi5.ts","../src/schemas/generated/schemas/shi8.ts","../src/schemas/generated/schemas/scvi.ts","../src/schemas/generated/schemas/acid.ts","../src/schemas/generated/schemas/avas.ts","../src/schemas/generated/schemas/cmod.ts","../src/schemas/generated/schemas/dial.ts","../src/schemas/generated/schemas/enhc.ts","../src/schemas/generated/schemas/ensc.ts","../src/schemas/generated/schemas/otgr.ts","../src/schemas/generated/schemas/sfsw.ts","../src/schemas/generated/schemas/ssst.ts","../src/schemas/generated/schemas/sfbf.ts","../src/schemas/generated/schemas/sfbs.ts","../src/schemas/generated/schemas/sxsd.ts","../src/schemas/generated/schemas/ucsa.ts","../src/schemas/generated/schemas/udmo.ts","../src/schemas/generated/schemas/iaxu.ts","../src/schemas/generated/schemas/iext.ts","../src/schemas/generated/schemas/samc.ts","../src/schemas/generated/schemas/sapc.ts","../src/schemas/generated/schemas/dsys.ts","../src/schemas/generated/schemas/ftgl.ts","../src/schemas/generated/schemas/prag.ts","../src/schemas/generated/schemas/cus0.ts","../src/schemas/generated/schemas/cus1.ts","../src/schemas/generated/schemas/cus2.ts","../src/schemas/generated/schemas/docv.ts","../src/schemas/generated/schemas/doct.ts","../src/schemas/generated/schemas/cmpt.ts","../src/schemas/generated/schemas/amsd.ts","../src/schemas/generated/schemas/apis.ts","../src/schemas/generated/schemas/wdya.ts","../src/schemas/generated/schemas/webi.ts","../src/schemas/generated/schemas/wdca.ts","../src/schemas/generated/schemas/wdcc.ts","../src/schemas/generated/schemas/pdts.ts","../src/schemas/generated/schemas/w3ht.ts","../src/schemas/generated/schemas/w3mi.ts","../src/schemas/generated/schemas/iatu.ts","../src/schemas/generated/schemas/iamu.ts","../src/schemas/generated/schemas/drul.ts","../src/schemas/generated/schemas/aifc.ts","../src/schemas/generated/schemas/aqbg.ts","../src/schemas/generated/schemas/aqqu.ts","../src/schemas/generated/schemas/aqsg.ts","../src/schemas/generated/schemas/asfc.ts","../src/schemas/generated/schemas/g4ba.ts","../src/schemas/generated/schemas/g4bs.ts","../src/schemas/generated/schemas/iwmo.ts","../src/schemas/generated/schemas/iwom.ts","../src/schemas/generated/schemas/iwpr.ts","../src/schemas/generated/schemas/iwsg.ts","../src/schemas/generated/schemas/iwsv.ts","../src/schemas/generated/schemas/iwvb.ts","../src/schemas/generated/schemas/sldd.ts","../src/schemas/generated/schemas/sobj.ts","../src/schemas/generated/schemas/sppf.ts","../src/schemas/generated/schemas/ueno.ts","../src/schemas/generated/schemas/ecat.ts","../src/schemas/generated/schemas/ecsd.ts","../src/schemas/generated/schemas/ecsp.ts","../src/schemas/generated/schemas/ectc.ts","../src/schemas/generated/schemas/ectd.ts","../src/schemas/generated/schemas/ecvo.ts","../src/schemas/generated/schemas/fdt0.ts","../src/schemas/generated/schemas/sfpi.ts","../src/schemas/generated/schemas/ssfo.ts","../src/schemas/generated/schemas/wapa.ts","../src/schemas/generated/schemas/wdyn.ts","../src/schemas/generated/index.ts","../src/lib/handlers/lang.ts","../src/lib/handlers/objects/clas.ts","../src/lib/handlers/objects/intf.ts","../src/lib/handlers/objects/devc.ts","../src/lib/handlers/objects/prog.ts","../src/lib/handlers/source-inclusion.ts","../src/lib/handlers/objects/fugr.ts","../src/lib/handlers/objects/doma.ts","../src/lib/handlers/objects/dtel.ts","../src/lib/handlers/cds-to-abapgit.ts","../src/lib/handlers/objects/tabl-serialize.ts","../src/lib/handlers/objects/tabl.ts","../src/lib/handlers/objects/ttyp.ts","../src/lib/handlers/source-resolver.ts","../src/lib/handlers/objects/bdef.ts","../src/lib/handlers/objects/srvd.ts","../src/lib/handlers/objects/srvb.ts","../src/lib/handlers/objects/cds-aff-source.ts","../src/lib/handlers/objects/dcls.ts","../src/lib/handlers/objects/ddls.ts","../src/lib/handlers/objects/ddlx.ts","../src/lib/handlers/objects/msag.ts","../src/lib/handlers/objects/view.ts","../src/lib/handlers/objects/enqu.ts","../src/lib/handlers/objects/shlp.ts","../src/lib/handlers/objects/tran.ts","../src/lib/handlers/objects/type.ts","../src/lib/handlers/objects/xslt.ts","../src/lib/handlers/objects/enho.ts","../src/lib/handlers/objects/enhs.ts","../src/lib/handlers/objects/dras.ts","../src/lib/handlers/objects/drty.ts","../src/lib/handlers/objects/dsfd.ts","../src/lib/handlers/objects/dsfi.ts","../src/lib/handlers/objects/dteb.ts","../src/lib/handlers/objects/dtdc.ts","../src/lib/handlers/objects/dtix.ts","../src/lib/handlers/objects/dtsc.ts","../src/lib/handlers/objects/desd.ts","../src/lib/handlers/aff-handler.ts","../src/lib/handlers/objects/aplo.ts","../src/lib/handlers/objects/bgqc.ts","../src/lib/handlers/objects/cdbo.ts","../src/lib/handlers/objects/chkc.ts","../src/lib/handlers/objects/chko.ts","../src/lib/handlers/objects/chkv.ts","../src/lib/handlers/objects/cota.ts","../src/lib/handlers/objects/evtb.ts","../src/lib/handlers/objects/gsmp.ts","../src/lib/handlers/objects/nont.ts","../src/lib/handlers/objects/ront.ts","../src/lib/handlers/objects/sajc.ts","../src/lib/handlers/objects/sajt.ts","../src/lib/handlers/objects/smbc.ts","../src/lib/handlers/objects/uiad.ts","../src/lib/handlers/objects/uipg.ts","../src/lib/handlers/objects/uist.ts","../src/lib/handlers/objects/eeec.ts","../src/lib/handlers/objects/swcr.ts","../src/lib/handlers/objects/http.ts","../src/lib/handlers/objects/nrob.ts","../src/lib/handlers/objects/chdo.ts","../src/lib/handlers/objects/smtg.ts","../src/lib/handlers/objects/sfpf.ts","../src/lib/handlers/objects/scp1.ts","../src/lib/handlers/objects/sicf.ts","../src/lib/handlers/objects/srfc.ts","../src/lib/handlers/objects/idoc.ts","../src/lib/handlers/objects/iobj.ts","../src/lib/handlers/objects/odso.ts","../src/lib/handlers/objects/shma.ts","../src/lib/handlers/objects/styl.ts","../src/lib/handlers/objects/susc.ts","../src/lib/handlers/objects/sucu.ts","../src/lib/handlers/objects/sxci.ts","../src/lib/handlers/objects/smim.ts","../src/lib/handlers/objects/sqsc.ts","../src/lib/handlers/objects/suso.ts","../src/lib/handlers/objects/sush.ts","../src/lib/handlers/objects/sktd.ts","../src/lib/handlers/objects/form.ts","../src/lib/handlers/objects/xinx.ts","../src/lib/handlers/objects/para.ts","../src/lib/handlers/objects/pers.ts","../src/lib/handlers/objects/oa2p.ts","../src/lib/handlers/objects/splo.ts","../src/lib/handlers/objects/tobj.ts","../src/lib/handlers/objects/sprx.ts","../src/lib/handlers/objects/sots.ts","../src/lib/handlers/objects/archive.ts","../src/lib/handlers/objects/iarp.ts","../src/lib/handlers/objects/iasp.ts","../src/lib/handlers/objects/char.ts","../src/lib/handlers/objects/auth.ts","../src/lib/handlers/objects/area.ts","../src/lib/handlers/objects/avar.ts","../src/lib/handlers/objects/jobd.ts","../src/lib/handlers/objects/nspc.ts","../src/lib/handlers/objects/pinf.ts","../src/lib/handlers/objects/vcls.ts","../src/lib/handlers/objects/stvi.ts","../src/lib/handlers/objects/sod.ts","../src/lib/handlers/objects/sod1.ts","../src/lib/handlers/objects/sod2.ts","../src/lib/handlers/objects/shi3.ts","../src/lib/handlers/objects/shi5.ts","../src/lib/handlers/objects/shi8.ts","../src/lib/handlers/objects/scvi.ts","../src/lib/handlers/objects/acid.ts","../src/lib/handlers/objects/avas.ts","../src/lib/handlers/objects/cmod.ts","../src/lib/handlers/objects/dial.ts","../src/lib/handlers/objects/enhc.ts","../src/lib/handlers/objects/ensc.ts","../src/lib/handlers/objects/otgr.ts","../src/lib/handlers/objects/sfsw.ts","../src/lib/handlers/objects/ssst.ts","../src/lib/handlers/objects/sfbf.ts","../src/lib/handlers/objects/sfbs.ts","../src/lib/handlers/objects/sxsd.ts","../src/lib/handlers/objects/ucsa.ts","../src/lib/handlers/objects/udmo.ts","../src/lib/handlers/objects/iaxu.ts","../src/lib/handlers/objects/iext.ts","../src/lib/handlers/objects/samc.ts","../src/lib/handlers/objects/sapc.ts","../src/lib/handlers/objects/dsys.ts","../src/lib/handlers/objects/ftgl.ts","../src/lib/handlers/objects/prag.ts","../src/lib/handlers/objects/cus0.ts","../src/lib/handlers/objects/cus1.ts","../src/lib/handlers/objects/cus2.ts","../src/lib/handlers/objects/docv.ts","../src/lib/handlers/objects/doct.ts","../src/lib/handlers/objects/cmpt.ts","../src/lib/handlers/objects/amsd.ts","../src/lib/handlers/objects/apis.ts","../src/lib/handlers/objects/wdya.ts","../src/lib/handlers/objects/webi.ts","../src/lib/handlers/objects/wdca.ts","../src/lib/handlers/objects/wdcc.ts","../src/lib/handlers/objects/pdts.ts","../src/lib/handlers/objects/w3ht.ts","../src/lib/handlers/objects/w3mi.ts","../src/lib/handlers/objects/iatu.ts","../src/lib/handlers/objects/iamu.ts","../src/lib/handlers/objects/drul.ts","../src/lib/handlers/objects/objsl.ts","../src/lib/handlers/objects/rawxml.ts","../src/lib/folder-logic.ts","../src/lib/filename-parser.ts","../src/lib/deserializer.ts","../src/lib/format-plugin.ts","../src/lib/serializer.ts","../src/lib/abapgit.ts","../src/index.ts"],"sourcesContent":["/**\n * XML formatting utilities for abapGit serialization.\n *\n * Centralizes XML post-processing that was previously duplicated\n * across base.ts, fugr.ts, tabl.ts, and roundtrip.ts.\n *\n * Uses indexOf-based parsing instead of regex to avoid\n * super-linear backtracking (SonarQube S5852).\n */\n\n/**\n * Extract `name=\"value\"` attribute pairs from an XML attribute string\n * using indexOf-based scanning (no regex).\n */\nfunction extractAttributes(content: string): string[] {\n const attrs: string[] = [];\n let i = 0;\n while (i < content.length) {\n // Skip whitespace\n while (\n i < content.length &&\n (content[i] === ' ' || content[i] === '\\n' || content[i] === '\\t')\n )\n i++;\n if (i >= content.length) break;\n\n // Find '=' for attribute name boundary\n const eqIdx = content.indexOf('=', i);\n if (eqIdx === -1) break;\n\n // Find opening quote\n const openQuote = content.indexOf('\"', eqIdx + 1);\n if (openQuote === -1) break;\n\n // Find closing quote\n const closeQuote = content.indexOf('\"', openQuote + 1);\n if (closeQuote === -1) break;\n\n attrs.push(content.slice(i, closeQuote + 1));\n i = closeQuote + 1;\n }\n return attrs;\n}\n\n/**\n * Format XML attributes on separate lines for better diff readability.\n *\n * Turns `<tag a=\"1\" b=\"2\">` into:\n * ```\n * <tag\n * a=\"1\"\n * b=\"2\"\n * >\n * ```\n *\n * Uses indexOf-based scanning to avoid regex backtracking (S5852).\n */\nexport function formatXmlAttributes(xml: string): string {\n let result = '';\n let pos = 0;\n\n while (pos < xml.length) {\n const openBracket = xml.indexOf('<', pos);\n if (openBracket === -1) {\n result += xml.slice(pos);\n break;\n }\n\n // Copy everything before '<'\n result += xml.slice(pos, openBracket);\n\n const closeBracket = xml.indexOf('>', openBracket);\n if (closeBracket === -1) {\n result += xml.slice(openBracket);\n break;\n }\n\n const tagContent = xml.slice(openBracket + 1, closeBracket);\n const spaceIdx = tagContent.indexOf(' ');\n\n // No attributes, or special tags (</, <!, <?)\n if (\n spaceIdx === -1 ||\n tagContent[0] === '/' ||\n tagContent[0] === '!' ||\n tagContent[0] === '?'\n ) {\n result += xml.slice(openBracket, closeBracket + 1);\n pos = closeBracket + 1;\n continue;\n }\n\n const tag = tagContent.slice(0, spaceIdx);\n const attrPart = tagContent.slice(spaceIdx + 1);\n const isSelfClosing = attrPart.trimEnd().endsWith('/');\n const attrContent = isSelfClosing\n ? attrPart.slice(0, attrPart.lastIndexOf('/'))\n : attrPart;\n\n const attrs = extractAttributes(attrContent);\n if (attrs.length === 0) {\n result += xml.slice(openBracket, closeBracket + 1);\n } else {\n const attrsJoined = attrs.map((a) => `\\n ${a}`).join('');\n const selfCloseMarker = isSelfClosing ? '/' : '';\n result += `<${tag}${attrsJoined}\\n${selfCloseMarker}>`;\n }\n pos = closeBracket + 1;\n }\n\n return result;\n}\n\n/**\n * Move `xmlns:asx` declaration from root `<abapGit>` to nested `<asx:abap>`.\n *\n * Uses indexOf-based approach instead of regex to avoid backtracking on\n * the `[\\s\\S]*?` pattern that SonarQube flags.\n */\nexport function moveNamespaceToAbap(xml: string): string {\n const nsDecl = ' xmlns:asx=\"http://www.sap.com/abapxml\"';\n const nsIdx = xml.indexOf(nsDecl);\n if (nsIdx === -1) return xml;\n\n // Verify the namespace is on the <abapGit root element\n const tagStart = xml.lastIndexOf('<abapGit', nsIdx);\n if (tagStart === -1) return xml;\n\n // Remove from root\n const stripped = xml.slice(0, nsIdx) + xml.slice(nsIdx + nsDecl.length);\n\n // Insert on <asx:abap element\n const asxTag = '<asx:abap';\n const asxIdx = stripped.indexOf(asxTag);\n if (asxIdx === -1) return stripped;\n\n return (\n stripped.slice(0, asxIdx + asxTag.length) +\n '\\n ' +\n nsDecl.trim() +\n stripped.slice(asxIdx + asxTag.length)\n );\n}\n\n/**\n * Apply standard abapGit XML formatting:\n * 1. Format attributes on separate lines\n * 2. Move xmlns:asx to asx:abap element\n */\nexport function formatAbapGitXml(xml: string): string {\n return moveNamespaceToAbap(formatXmlAttributes(xml));\n}\n","/**\n * Handler Factory for abapGit object serialization\n *\n * Provides `createHandler` factory for creating object handlers.\n * Handlers auto-register when created.\n */\n\nimport type { AdkObject, AdkKind } from '@abapify/adk';\nimport { getTypeForKind, getMainType } from '@abapify/adk';\nimport {\n FormatMaterializationError,\n type FormatSerializeOptions,\n} from '@abapify/adt-plugin';\nimport type {\n AbapGitSchema,\n InferAbapGitType,\n InferValuesType,\n} from './abapgit-schema';\nimport { formatAbapGitXml } from './xml-format';\n\n/**\n * Extract the data type (D) from an AdkObject<K, D>\n * This allows us to infer the payload type from the ADK class itself\n */\nexport type InferAdkData<T> =\n T extends AdkObject<infer _K, infer D> ? D : never;\n\n/**\n * ADK object class type\n * Used to pass ADK classes to createHandler\n *\n * We use `any[]` for constructor args since we only need the static `kind` property,\n * not to actually instantiate the class.\n */\n\nexport type AdkObjectClass<T extends AdkObject = AdkObject> = {\n new (...args: any[]): T;\n readonly kind: AdkKind;\n};\n\n// ============================================\n// Handler Types\n// ============================================\n\n/**\n * ABAP object type code (e.g., 'CLAS', 'INTF', 'DOMA')\n */\nexport type AbapObjectType = string;\n\n/**\n * Result of serializing a single file\n */\nexport interface SerializedFile {\n /** Relative path from object directory */\n path: string;\n /** File content */\n content: string;\n /** Optional encoding (default: utf-8) */\n encoding?: BufferEncoding;\n}\n\n/**\n * Handler interface for object serialization/deserialization\n *\n * @typeParam T - ADK object type\n * @typeParam TSchema - AbapGit schema type (provides type-safe values)\n */\nexport interface ObjectHandler<\n T extends AdkObject = AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n> {\n /** ABAP object type (e.g., 'CLAS', 'INTF') */\n readonly type: AbapObjectType;\n /** File extension for this type (e.g., 'clas', 'intf') */\n readonly fileExtension: string;\n /** Schema for parsing/building XML */\n readonly schema: TSchema;\n /** Map abapGit file suffix to source key */\n readonly suffixToSourceKey?: Record<string, string>;\n /** Whether this handler treats an explicit `sources` map as authoritative. */\n readonly supportsExplicitSources?: boolean;\n /** Serialize object to files (SAP → Git) */\n serialize(\n object: T,\n options?: FormatSerializeOptions,\n ): Promise<SerializedFile[]>;\n /**\n * Map abapGit values to ADK data (Git → SAP)\n * Return type includes name (required) plus any ADK data fields\n */\n fromAbapGit?(\n values: InferValuesType<TSchema>,\n ): Partial<InferAdkData<T>> & { name: string };\n\n /**\n * Map AFF JSON metadata to ADK data (Git → SAP)\n * Used when the metadata file is `.json` (ABAP File Format) instead of legacy `.xml`.\n * Receives the parsed JSON object and returns the full payload including name.\n */\n fromAffJson?(json: Record<string, unknown>): Partial<InferAdkData<T>> & {\n name: string;\n };\n\n /**\n * Set source files on ADK object during deserialization (Git → SAP)\n * Symmetric counterpart to getSources\n */\n setSources?(object: T, sources: Record<string, string>): void;\n}\n\n/**\n * Re-export AbapGitSchema types for handler definitions\n */\nexport type {\n AbapGitSchema,\n InferAbapGitType,\n InferValuesType,\n} from './abapgit-schema';\n\n// ============================================\n// Global Handler Registry\n// ============================================\n\nconst handlerRegistry = new Map<AbapObjectType, ObjectHandler>();\n\n/**\n * Get handler for object type\n *\n * Tries the full type first (e.g., 'TABL/DS'), then falls back to the\n * main type (e.g., 'CLAS/OC' → 'CLAS'). This matches ADK's resolveType()\n * behaviour and handles quickSearch results that return subtypes.\n */\nexport function getHandler(type: AbapObjectType): ObjectHandler | undefined {\n return handlerRegistry.get(type) ?? handlerRegistry.get(getMainType(type));\n}\n\n/**\n * Check if object type is supported\n *\n * Tries the full type first, then falls back to the main type.\n */\nexport function isSupported(type: AbapObjectType): boolean {\n return handlerRegistry.has(type) || handlerRegistry.has(getMainType(type));\n}\n\n/**\n * Get all supported object types\n */\nexport function getSupportedTypes(): AbapObjectType[] {\n return [...handlerRegistry.keys()];\n}\n\n// ============================================\n// Deserialization Context\n// ============================================\n\n/**\n * Payload for creating ADK objects from abapGit\n * Contains all data needed to construct an object (name, metadata, sources)\n */\nexport interface ObjectPayload {\n /** Object name */\n name: string;\n /** Object description */\n description?: string;\n /** Source files keyed by include type (e.g., { main: '...', testclasses: '...' }) */\n sources?: Record<string, string>;\n /** Additional type-specific data */\n [key: string]: unknown;\n}\n\n// ============================================\n// Handler Factory\n// ============================================\n\n/**\n * Handler definition passed to createHandler\n *\n * @typeParam T - ADK object type\n * @typeParam TSchema - The AbapGit schema (provides both full type and values type)\n */\nexport interface HandlerDefinition<\n T extends AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n> {\n /** AbapGit typed schema for XML generation */\n schema: TSchema;\n\n /** abapGit format version */\n version: string;\n\n /** Serializer class name (e.g., 'LCL_OBJECT_DEVC') */\n serializer: string;\n\n /** Serializer version */\n serializer_version: string;\n\n /**\n * Map ADK object to abapGit values (inner content only)\n * The base class wraps this in the full AbapGitType structure\n */\n toAbapGit(object: T): InferValuesType<TSchema>;\n\n /**\n * Map abapGit values to ADK data (optional)\n * Symmetric counterpart to toAbapGit - used for export (Git → SAP)\n *\n * @param values - Parsed abapGit values (same type as toAbapGit returns)\n * @returns Partial ADK data with name for deserialization\n */\n fromAbapGit?(\n values: InferValuesType<TSchema>,\n ): Partial<InferAdkData<T>> & { name: string };\n\n /**\n * Map AFF JSON metadata to ADK data (Git → SAP)\n * Used when the metadata file is `.json` (ABAP File Format) instead of legacy `.xml`.\n * Receives the parsed JSON object and returns the full payload including name.\n */\n fromAffJson?(json: Record<string, unknown>): Partial<InferAdkData<T>> & {\n name: string;\n };\n\n /**\n * Map abapGit file suffix to source key (for objects with multiple sources)\n * Used during deserialization to map file suffixes to source keys\n *\n * @example For CLAS: { 'locals_def': 'definitions', 'testclasses': 'testclasses' }\n */\n suffixToSourceKey?: Record<string, string>;\n\n /**\n * Whether this handler treats an explicit `sources` map as authoritative.\n * If omitted, the factory infers it from `getSource`/`getSources` or from\n * the custom `serialize` arity.\n */\n supportsExplicitSources?: boolean;\n\n /**\n * Custom filename for XML file (optional)\n * Default: `${objectName}.${type}.xml`\n *\n * @example 'package.devc.xml' for DEVC which doesn't use object name\n */\n xmlFileName?:\n | string\n | ((\n object: T,\n ctx: HandlerContext<T, InferAbapGitType<TSchema>>,\n ) => string);\n\n /**\n * Get source code from object (optional)\n * If provided, default serialize will create both .abap and .xml files\n *\n * @example getSource: (obj) => obj.getSource()\n */\n getSource?(object: T): Promise<string>;\n\n /**\n * Get multiple source files from object (optional)\n * For objects with multiple source files (e.g., CLAS with includes)\n * Returns array of { suffix?, content } or promises - resolved automatically\n *\n * @example getSources: (cls) => cls.includes.map((inc) => ({\n * suffix: SUFFIX_MAP[inc.includeType],\n * content: cls.getIncludeSource(inc.includeType),\n * }))\n */\n getSources?(\n object: T,\n ): Array<{ suffix?: string; content: string | Promise<string> }>;\n\n /**\n * Set source files on ADK object during deserialization (Git → SAP)\n * Symmetric counterpart to getSources\n *\n * @param object - ADK object to set sources on\n * @param sources - Source files keyed by source key (e.g., { main: '...', testclasses: '...' })\n *\n * @example setSources: (cls, sources) => {\n * if (sources.main) cls.setSource(sources.main);\n * if (sources.testclasses) cls.setIncludeSource('testclasses', sources.testclasses);\n * }\n */\n setSources?(object: T, sources: Record<string, string>): void;\n\n /**\n * Serialize object to files (optional)\n * Default behavior:\n * - If getSources provided: creates multiple .abap + .xml files\n * - If getSource provided: creates single .abap + .xml files\n * - Otherwise: creates only .xml file\n *\n * Override only for very custom serialization logic\n */\n serialize?(\n object: T,\n ctx: HandlerContext<T, InferAbapGitType<TSchema>>,\n options?: FormatSerializeOptions,\n ): Promise<SerializedFile[]>;\n}\n\n/**\n * Context passed to serialize function with helper utilities\n */\nexport interface HandlerContext<T extends AdkObject, _TData = unknown> {\n /** ABAP object type */\n readonly type: AbapObjectType;\n /** File extension (lowercase type) */\n readonly fileExtension: string;\n\n /** Get object name in lowercase */\n getObjectName(object: T): string;\n /** Get object data synchronously */\n getData(object: T): Record<string, unknown>;\n /** Resolve lazy content */\n resolveContent(content: unknown): Promise<string>;\n\n /** Convert to abapGit XML using schema */\n toAbapGitXml(object: T): string;\n\n /** Create a file entry */\n createFile(\n path: string,\n content: string,\n encoding?: BufferEncoding,\n ): SerializedFile;\n /** Create XML metadata file */\n createXmlFile(objectName: string, xmlContent: string): SerializedFile;\n /** Create ABAP source file */\n createAbapFile(\n objectName: string,\n content: string,\n suffix?: string,\n ): SerializedFile;\n}\n\n/**\n * Normalize an XML child element that may be a single item or array into an array\n */\nexport function normalizeItems<T>(raw: T | T[] | undefined): T[] {\n if (!raw) return [];\n return Array.isArray(raw) ? raw : [raw];\n}\n\n/**\n * Map normalized items, returning undefined for empty input\n * (keeps fromAbapGit symmetric with toAbapGit which omits empty tables)\n */\nexport function mapItems<T, R>(\n items: T[],\n fn: (item: T) => R,\n): R[] | undefined {\n return items.length ? items.map(fn) : undefined;\n}\n\n/**\n * Unwrap the ADK payload. AdkGenericObject exposes it via a `data`\n * getter; AdkObject subclasses expose `dataSync` (the `data` member is\n * an async method there). Plain literals carry fields directly — a\n * literal `data` field that is an array (e.g. SPRX) is left untouched.\n */\nexport function unwrapData<T>(raw: T | { data?: unknown }): T {\n const d = (raw as { data?: unknown }).data;\n if (d !== null && typeof d === 'object' && !Array.isArray(d)) {\n return d as T;\n }\n try {\n const sync = (raw as { dataSync?: unknown }).dataSync;\n if (sync !== null && typeof sync === 'object' && !Array.isArray(sync)) {\n return sync as T;\n }\n } catch {\n // AdkObject.dataSync throws when the object is not loaded\n }\n return raw as T;\n}\n\n/**\n * Create an object handler from ADK class\n */\nexport function createHandler<\n T extends AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n>(\n adkClass: AdkObjectClass<T>,\n definition: HandlerDefinition<T, TSchema>,\n): ObjectHandler<T>;\n\n/**\n * Create an object handler from ABAP type string\n * Use this for object types without ADK class (e.g., DTEL, DOMA)\n */\nexport function createHandler<\n T extends AdkObject = AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n>(\n type: AbapObjectType,\n definition: HandlerDefinition<T, TSchema>,\n): ObjectHandler<T>;\n\n/**\n * Create an object handler\n *\n * @param adkClassOrType - ADK object class or ABAP type string\n * @param definition - Handler definition with schema, toAbapGit, serialize\n * @returns ObjectHandler that is auto-registered\n *\n * @example\n * ```typescript\n * // With ADK class (preferred)\n * import { AdkPackage } from '@abapify/adk';\n * export const packageHandler = createHandler(AdkPackage, { ... });\n *\n * // With ABAP type string (for objects without ADK class)\n * export const dataElementHandler = createHandler('DTEL', { ... });\n * ```\n */\nexport function createHandler<\n T extends AdkObject,\n TSchema extends AbapGitSchema<unknown, unknown> = AbapGitSchema<\n unknown,\n unknown\n >,\n>(\n adkClassOrType: AdkObjectClass<T> | AbapObjectType,\n definition: HandlerDefinition<T, TSchema>,\n): ObjectHandler<T> {\n // Determine ABAP type\n let type: AbapObjectType;\n\n if (typeof adkClassOrType === 'string') {\n // Direct ABAP type string\n type = adkClassOrType;\n } else {\n // ADK class - derive from static kind\n const kind = adkClassOrType.kind;\n const derivedType = getTypeForKind(kind);\n if (!derivedType) {\n throw new Error(\n `Unknown ADK kind: ${kind}. Make sure the ADK class has a static 'kind' property.`,\n );\n }\n type = derivedType;\n }\n\n const fileExtension = getMainType(type).toLowerCase();\n\n // Create handler context with utilities\n const ctx: HandlerContext<T, InferAbapGitType<TSchema>> = {\n type,\n fileExtension,\n\n getObjectName(object: T): string {\n return object.name.toLowerCase();\n },\n\n getData(object: T): Record<string, unknown> {\n return object.dataSync as Record<string, unknown>;\n },\n\n async resolveContent(content: unknown): Promise<string> {\n if (!content) return '';\n if (typeof content === 'string') return content;\n if (typeof content === 'function') return await content();\n return '';\n },\n\n toAbapGitXml(object: T): string {\n // Get values from handler\n const values = definition.toAbapGit(object);\n\n // Construct full AbapGitType payload\n const fullPayload = {\n abap: {\n version: '1.0', // Explicit version attribute for asx:abap\n values,\n },\n version: definition.version,\n serializer: definition.serializer,\n serializer_version: definition.serializer_version,\n } as InferAbapGitType<TSchema>;\n\n // Build XML with pretty formatting for readability\n const xml = definition.schema.build(fullPayload, { pretty: true });\n\n return formatAbapGitXml(xml);\n },\n\n createFile(\n path: string,\n content: string,\n encoding?: BufferEncoding,\n ): SerializedFile {\n return { path, content, encoding };\n },\n\n createXmlFile(objectName: string, xmlContent: string): SerializedFile {\n return {\n path: `${objectName}.${fileExtension}.xml`,\n content: xmlContent,\n };\n },\n\n createAbapFile(\n objectName: string,\n content: string,\n suffix?: string,\n ): SerializedFile {\n const fileName = suffix\n ? `${objectName}.${fileExtension}.${suffix}.abap`\n : `${objectName}.${fileExtension}.abap`;\n return { path: fileName, content };\n },\n };\n\n function resolveXmlFileName(object: T): string {\n if (definition.xmlFileName) {\n return typeof definition.xmlFileName === 'function'\n ? definition.xmlFileName(object, ctx)\n : definition.xmlFileName;\n }\n return `${ctx.getObjectName(object)}.${fileExtension}.xml`;\n }\n\n function createExplicitSourceFile(\n sourceKey: string,\n content: string | undefined,\n suffixBySourceKey: Map<string, string | undefined>,\n objectName: string,\n ): SerializedFile | undefined {\n if (content === undefined) return undefined;\n if (!suffixBySourceKey.has(sourceKey)) {\n throw new FormatMaterializationError(\n 'FORMAT_SOURCE_COMPONENT_UNSUPPORTED',\n `The ${type} format handler cannot map source component \"${sourceKey}\".`,\n );\n }\n return ctx.createAbapFile(\n objectName,\n content,\n suffixBySourceKey.get(sourceKey),\n );\n }\n\n function buildExplicitSourceFiles(\n object: T,\n sources: Record<string, string | undefined>,\n ): SerializedFile[] {\n const sourceKeys = Object.keys(sources);\n if (sourceKeys.length === 0) return [];\n if (!definition.getSource && !definition.getSources) {\n throw new FormatMaterializationError(\n 'FORMAT_SOURCE_COMPONENT_UNSUPPORTED',\n `The ${type} format handler does not serialize source components.`,\n );\n }\n const suffixBySourceKey = new Map<string, string | undefined>([\n ['main', undefined],\n ...Object.entries(definition.suffixToSourceKey ?? {}).map(\n ([suffix, sourceKey]) => [sourceKey, suffix] as const,\n ),\n ]);\n const objectName = ctx.getObjectName(object);\n const files: SerializedFile[] = [];\n for (const sourceKey of sourceKeys.sort((left, right) =>\n left.localeCompare(right, 'en-US'),\n )) {\n const file = createExplicitSourceFile(\n sourceKey,\n sources[sourceKey],\n suffixBySourceKey,\n objectName,\n );\n if (file) files.push(file);\n }\n return files;\n }\n\n async function buildMutableSourceFiles(object: T): Promise<SerializedFile[]> {\n const objectName = ctx.getObjectName(object);\n if (definition.getSources) {\n const rawSources = definition.getSources(object);\n const sources = await Promise.all(\n rawSources.map(async ({ suffix, content }) => ({\n suffix,\n content: await content,\n })),\n );\n return sources\n .filter(({ content }) => content)\n .map(({ suffix, content }) =>\n ctx.createAbapFile(objectName, content!, suffix),\n );\n }\n if (definition.getSource) {\n const source = await definition.getSource(object);\n return source ? [ctx.createAbapFile(objectName, source)] : [];\n }\n return [];\n }\n\n // Default serialize\n const defaultSerialize = async (\n object: T,\n options?: FormatSerializeOptions,\n ): Promise<SerializedFile[]> => {\n const sourceFiles =\n options?.sources !== undefined\n ? buildExplicitSourceFiles(object, options.sources)\n : await buildMutableSourceFiles(object);\n const xmlFileName = resolveXmlFileName(object);\n const xmlContent = ctx.toAbapGitXml(object);\n return [...sourceFiles, ctx.createFile(xmlFileName, xmlContent)];\n };\n\n // Default fromAbapGit using definition.fromAbapGit if provided\n const defaultFromAbapGit = definition.fromAbapGit\n ? (\n values: InferValuesType<TSchema>,\n ): Partial<InferAdkData<T>> & { name: string } => {\n return definition.fromAbapGit!(values);\n }\n : undefined;\n\n // Determine whether this handler can honor an explicit source map.\n // Handlers may declare it explicitly; otherwise we fall back to arity.\n const explicitSupports = definition.supportsExplicitSources;\n const serializeAcceptsOptions =\n explicitSupports ??\n (definition.serialize !== undefined && definition.serialize.length >= 3);\n const supportsExplicitSources =\n explicitSupports ??\n (definition.getSource !== undefined ||\n definition.getSources !== undefined ||\n serializeAcceptsOptions);\n\n // Create handler object with full type information\n const handler: ObjectHandler<T, TSchema> = {\n type,\n fileExtension,\n schema: definition.schema,\n suffixToSourceKey: definition.suffixToSourceKey,\n supportsExplicitSources,\n serialize: definition.serialize\n ? async (object: T, options?: FormatSerializeOptions) => {\n if (serializeAcceptsOptions) {\n return await definition.serialize!(object, ctx, options);\n }\n return await (\n definition.serialize as (\n object: T,\n ctx: HandlerContext<T, InferAbapGitType<TSchema>>,\n ) => Promise<SerializedFile[]>\n )(object, ctx);\n }\n : defaultSerialize,\n fromAbapGit: defaultFromAbapGit,\n fromAffJson: definition.fromAffJson,\n setSources: definition.setSources,\n };\n\n // Auto-register (cast to base type for registry storage)\n handlerRegistry.set(type, handler as ObjectHandler);\n\n return handler;\n}\n","/**\n * AbapGit Schema - extends TypedSchema with values type\n *\n * Provides both:\n * - _type: Full AbapGitType (for XML build/parse)\n * - _values: Inner values type (for handler mapping)\n */\n\nimport {\n typedSchema,\n type TypedSchema,\n type SchemaLike,\n} from '@abapify/ts-xsd';\n\n/**\n * AbapGit schema instance with both full type and values type\n *\n * @typeParam TFull - Full AbapGitType (root XML structure)\n * @typeParam TValues - Inner values type (e.g., DevcType)\n * @typeParam S - Raw schema literal type\n */\nexport interface AbapGitSchema<\n TFull,\n TValues,\n S extends SchemaLike = SchemaLike,\n> extends TypedSchema<TFull, S> {\n /** The inner values type - use with typeof for type extraction */\n readonly _values: TValues;\n}\n\n/**\n * Create an AbapGit typed schema wrapper from raw schema\n *\n * @param rawSchema - Raw schema literal (with `as const`)\n * @returns AbapGitSchema with both _type and _values\n *\n * @example\n * ```typescript\n * import _devc from './schemas/devc';\n *\n * const devc = abapGitSchema<DevcAbapGitType, DevcType>(_devc);\n *\n * // Access types:\n * type Full = typeof devc._type; // DevcAbapGitType\n * type Values = typeof devc._values; // DevcType\n * ```\n */\nexport function abapGitSchema<\n TFull,\n TValues,\n S extends SchemaLike = SchemaLike,\n>(rawSchema: S): AbapGitSchema<TFull, TValues, S> {\n const base = typedSchema<TFull, S>(rawSchema);\n return {\n _type: base._type as TFull,\n _values: null as unknown as TValues,\n schema: base.schema,\n parse: base.parse as (xml: string) => TFull,\n build: base.build as (\n data: TFull,\n options?: Parameters<typeof base.build>[1],\n ) => string,\n };\n}\n\n/** Extract the full AbapGit type from an AbapGitSchema */\nexport type InferAbapGitType<S> =\n S extends AbapGitSchema<infer T, unknown> ? T : unknown;\n\n/** Extract the values type from an AbapGitSchema */\nexport type InferValuesType<S> =\n S extends AbapGitSchema<unknown, infer V> ? V : unknown;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/clas.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"VSEOCLASS\",\n type: \"asx:VseoClassType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VseoClassType\",\n all: {\n element: [\n {\n name: \"CLSNAME\",\n type: \"xs:string\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CATEGORY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXPOSURE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSFINAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSABSTRCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSCCINCL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIXPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNICODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"WITH_UNIT_TESTS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DURATION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RISK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MSG_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFCLSNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHRM_ENABLED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/devc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DEVC\",\n type: \"asx:DevcType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DevcType\",\n all: {\n element: [\n {\n name: \"CTEXT\",\n type: \"xs:string\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/doma.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD01V\",\n type: \"asx:Dd01vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD07V_TAB\",\n type: \"asx:Dd07vTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd01vType\",\n all: {\n element: [\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOWERCASE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SIGNFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALEXI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ENTITYTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONVEXIT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMMASTER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd07vType\",\n all: {\n element: [\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMVALUE_L\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMVALUE_H\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd07vTabType\",\n sequence: {\n element: [\n {\n name: \"DD07V\",\n type: \"Dd07vType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/dtel.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD04V\",\n type: \"asx:Dd04vType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd04vType\",\n sequence: {\n element: [\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HEADLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRLEN1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRLEN2\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRLEN3\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REPTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRTEXT_S\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRTEXT_M\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCRTEXT_L\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DTELMASTER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFKIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/intf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"VSEOINTERF\",\n type: \"asx:VseoInterfType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VseoInterfType\",\n all: {\n element: [\n {\n name: \"CLSNAME\",\n type: \"xs:string\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXPOSURE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNICODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/prog.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PROGDIR\",\n type: \"asx:ProgdirType\",\n minOccurs: \"0\",\n },\n {\n name: \"TPOOL\",\n type: \"asx:TpoolType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ProgdirType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SUBC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIXPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNICODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DTEFUNC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RLOAD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UCCHECK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TpoolItemType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n },\n {\n name: \"ENTRY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENGTH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TpoolType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"TpoolItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/fugr.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"AREAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INCLUDES\",\n type: \"asx:FugrIncludesType\",\n minOccurs: \"0\",\n },\n {\n name: \"FUNCTIONS\",\n type: \"asx:FugrFunctionsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrParamType\",\n all: {\n element: [\n {\n name: \"PARAMETER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DBFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFAULT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OPTIONAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFERENCE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrTableParamType\",\n all: {\n element: [\n {\n name: \"PARAMETER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DBSTRUCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OPTIONAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrExceptionType\",\n all: {\n element: [\n {\n name: \"EXCEPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrDocParamType\",\n all: {\n element: [\n {\n name: \"PARAMETER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrImportType\",\n sequence: {\n element: [\n {\n name: \"RSIMP\",\n type: \"FugrParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrExportType\",\n sequence: {\n element: [\n {\n name: \"RSEXP\",\n type: \"FugrParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrChangingType\",\n sequence: {\n element: [\n {\n name: \"RSCHA\",\n type: \"FugrParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrTablesType\",\n sequence: {\n element: [\n {\n name: \"RSTBL\",\n type: \"FugrTableParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrExceptionsType\",\n sequence: {\n element: [\n {\n name: \"RSEXC\",\n type: \"FugrExceptionType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrDocumentationType\",\n sequence: {\n element: [\n {\n name: \"RSFDO\",\n type: \"FugrDocParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrFunctionItemType\",\n all: {\n element: [\n {\n name: \"FUNCNAME\",\n type: \"xs:string\",\n },\n {\n name: \"GLOBAL_FLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REMOTE_CALL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UPDATE_TASK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHORT_TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REMOTE_BASXML\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXCEPTION_CLASSES\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPORT\",\n type: \"FugrImportType\",\n minOccurs: \"0\",\n },\n {\n name: \"CHANGING\",\n type: \"FugrChangingType\",\n minOccurs: \"0\",\n },\n {\n name: \"EXPORT\",\n type: \"FugrExportType\",\n minOccurs: \"0\",\n },\n {\n name: \"TABLES\",\n type: \"FugrTablesType\",\n minOccurs: \"0\",\n },\n {\n name: \"EXCEPTION\",\n type: \"FugrExceptionsType\",\n minOccurs: \"0\",\n },\n {\n name: \"DOCUMENTATION\",\n type: \"FugrDocumentationType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FugrFunctionsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FugrFunctionItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FugrIncludesType\",\n sequence: {\n element: [\n {\n name: \"SOBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/tabl.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD02V\",\n type: \"asx:Dd02vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD09L\",\n type: \"asx:Dd09lType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD03P_TABLE\",\n type: \"asx:Dd03pTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"TABL_EXTRAS\",\n type: \"asx:TablExtrasType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd02vType\",\n sequence: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGDEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLIDEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SQLTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTERLANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BUFFERED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MATEFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONTFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPEXI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AUTHCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd09lType\",\n sequence: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABKAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABART\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BUFALLOW\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PUFFERUNG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCHFELDANZ\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROTOKOLL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPEESSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UESSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROESSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd03pType\",\n sequence: {\n element: [\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"POSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ADMINFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PRECFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NOTNULL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPORIGIN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONRFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd03pTableType\",\n sequence: {\n element: [\n {\n name: \"DD03P\",\n type: \"Dd03pType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"TddatType\",\n sequence: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VIEWGRANT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TVDIR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GENERICRANGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TablExtrasType\",\n sequence: {\n element: [\n {\n name: \"TDDAT\",\n type: \"TddatType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ttyp.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD40V\",\n type: \"asx:Dd40vType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd40vType\",\n all: {\n element: [\n {\n name: \"TYPENAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROWTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROWKIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACCESSMODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYDEF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYKIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GENERIC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPELEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFFDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/bdef.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"asx:SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/srvd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"asx:SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/srvb.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"BindingType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CATEGORY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"asx:SkeyType\",\n minOccurs: \"0\",\n },\n {\n name: \"BINDING\",\n type: \"asx:BindingType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/dcls.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"asx:SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ddls.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"asx:SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ddlx.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"SkeyType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKEY\",\n type: \"asx:SkeyType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/msag.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"T100A\",\n type: \"asx:T100aType\",\n minOccurs: \"0\",\n },\n {\n name: \"T100\",\n type: \"asx:T100TabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"T100aType\",\n all: {\n element: [\n {\n name: \"ARBGB\",\n type: \"xs:string\",\n },\n {\n name: \"MASTERLANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"T100Type\",\n sequence: {\n element: [\n {\n name: \"SPRSL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ARBGB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MSGNR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"T100TabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"T100Type\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/view.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD25V\",\n type: \"asx:Dd25vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD26V_TABLE\",\n type: \"asx:Dd26vTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD27P_TABLE\",\n type: \"asx:Dd27pTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD28V_TABLE\",\n type: \"asx:Dd28vTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd25vType\",\n all: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VIEWCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROOTTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROOTFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MULTITAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd26vType\",\n sequence: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FVIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FFIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"READONLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd26vTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd26vType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Dd27pType\",\n sequence: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VIEWFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"READONLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHECKTABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOGFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONVEXIT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd27pTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd27pType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Dd28vType\",\n sequence: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ANDOR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LEFTBRACKET\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OPERATOR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONST_VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RIGHTBRACKET\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd28vTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd28vType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/enqu.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD25V\",\n type: \"asx:Dd25vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD26V_TABLE\",\n type: \"asx:Dd26vTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD27P_TABLE\",\n type: \"asx:Dd27pTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd25vType\",\n all: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VIEWCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROOTTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROOTFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MULTITAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd26vType\",\n sequence: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FVIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FFIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"READONLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd26vTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd26vType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Dd27pType\",\n sequence: {\n element: [\n {\n name: \"VIEWNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VIEWFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"READONLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHECKTABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOGFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONVEXIT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd27pTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd27pType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/shlp.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DD30V\",\n type: \"asx:Dd30vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD31V\",\n type: \"asx:Dd31vType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD32P_TABLE\",\n type: \"asx:Dd32pTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"DD33V_TABLE\",\n type: \"asx:Dd33vTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd30vType\",\n all: {\n element: [\n {\n name: \"SHLPNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPINPUT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFLOOKUP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DIALOGTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SELEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTMETHOD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HOTKEY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd31vType\",\n all: {\n element: [\n {\n name: \"SHLPNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FLDLOCATION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd32pType\",\n sequence: {\n element: [\n {\n name: \"SHLPNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPINPUT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPOUTPUT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPSELPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPLISPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFAULTVAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DECIMALS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd32pTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd32pType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Dd33vType\",\n sequence: {\n element: [\n {\n name: \"SHLPNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPFIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPINPUT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHLPOUTPUT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Dd33vTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Dd33vType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/tran.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TSTC\",\n type: \"asx:TstcType\",\n minOccurs: \"0\",\n },\n {\n name: \"TSTCC\",\n type: \"asx:TstccType\",\n minOccurs: \"0\",\n },\n {\n name: \"TSTCT\",\n type: \"asx:TstctTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TstcType\",\n all: {\n element: [\n {\n name: \"TCODE\",\n type: \"xs:string\",\n },\n {\n name: \"PGMNA\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DYPNO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CINFO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TstccType\",\n all: {\n element: [\n {\n name: \"TCODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"S_WEBGUI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"S_PLATIN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"S_WIN32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"S_MAC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TstctType\",\n sequence: {\n element: [\n {\n name: \"SPRSL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TCODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TstctTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"TstctType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/type.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TYPE\",\n type: \"asx:TypeGroupType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TypeGroupType\",\n all: {\n element: [\n {\n name: \"TYPEGROUP\",\n type: \"xs:string\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/xslt.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"XSLT\",\n type: \"asx:XsltType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"XsltType\",\n all: {\n element: [\n {\n name: \"PROGNAME\",\n type: \"xs:string\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/enho.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TOOL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPOT_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORIGINAL_OBJECT\",\n type: \"asx:EnhOriginalObjectType\",\n minOccurs: \"0\",\n },\n {\n name: \"ENHANCEMENTS\",\n type: \"asx:EnhHookImplsType\",\n minOccurs: \"0\",\n },\n {\n name: \"FILES\",\n type: \"asx:EnhFilesType\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPL\",\n type: \"asx:EnhImplType\",\n minOccurs: \"0\",\n },\n {\n name: \"SOTR\",\n type: \"asx:SotrType\",\n minOccurs: \"0\",\n },\n {\n name: \"SOTR_USE\",\n type: \"asx:SotrUseTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhOriginalObjectType\",\n all: {\n element: [\n {\n name: \"PGMID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORG_OBJ_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORG_OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORG_MAIN_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORG_MAIN_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROGRAMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhHookImplType\",\n all: {\n element: [\n {\n name: \"PROGRAMNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ENHMODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FULL_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhHookImplsType\",\n sequence: {\n element: [\n {\n name: \"ENH_HOOK_IMPL\",\n type: \"EnhHookImplType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EnhFileType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhFilesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"EnhFileType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFilterIdType\",\n all: {\n element: [\n {\n name: \"FILTER_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFilterRootType\",\n all: {\n element: [\n {\n name: \"ROOT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTERS\",\n type: \"FiltersType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFilterValueType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPARE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_STRING_VALUE1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHECK_CLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFilterValuesType\",\n sequence: {\n element: [\n {\n name: \"ENH_BADIIMPL_FILTER_VALUE\",\n type: \"EnhBadiFilterValueType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFilterImplType\",\n all: {\n element: [\n {\n name: \"DISJ_IDX\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONJ_IDX\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPARE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_STRING_VALUE1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHECK_CLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFiltersType\",\n sequence: {\n element: [\n {\n name: \"ENH_BADI_FILTER_IMPL\",\n type: \"EnhBadiFilterImplType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiImplDataType\",\n all: {\n element: [\n {\n name: \"SPOT_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BADI_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPL_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPL_CLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTIVE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_ROOT\",\n type: \"FilterRootType\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTER_VALUES\",\n type: \"EnhBadiFilterValuesType\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTERS\",\n type: \"EnhBadiFiltersType\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPL_SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMPL_SHORTTEXT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOCKED_IN_CUSTOMIZING\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhImplType\",\n sequence: {\n element: [\n {\n name: \"ENH_BADI_IMPL_DATA\",\n type: \"EnhBadiImplDataType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SotrTextType\",\n all: {\n element: [\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LFD_NUM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FLAG_CNTXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATUS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENGTH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotrHeaderType\",\n all: {\n element: [\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREA_LAN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TRALA_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJID_VEC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotrItemType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"SotrHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"ENTRIES\",\n type: \"EntriesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotrType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SotrItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SotrUseType\",\n all: {\n element: [\n {\n name: \"PGMID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LFD_NUM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotrUseTabType\",\n sequence: {\n element: [\n {\n name: \"SOTR_USE\",\n type: \"SotrUseType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FiltersType\",\n sequence: {\n element: [\n {\n name: \"ENH_BADIIMPL_FILTER_ID\",\n type: \"EnhBadiFilterIdType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FilterRootType\",\n sequence: {\n element: [\n {\n name: \"ENH_BADIIMPL_FILTER_ROOT\",\n type: \"EnhBadiFilterRootType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EntriesType\",\n sequence: {\n element: [\n {\n name: \"SOTR_TEXT\",\n type: \"SotrTextType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/enhs.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TOOL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT_COMP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BADI_DATA\",\n type: \"asx:EnhBadiDataType\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiDefType\",\n all: {\n element: [\n {\n name: \"BADI_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BADI_SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTERFACE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INSTANTIATION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MULTIPLE_USE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FILTERS\",\n type: \"FiltersType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiFilterDefType\",\n all: {\n element: [\n {\n name: \"FILTER_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhHookDefEntryType\",\n all: {\n element: [\n {\n name: \"HOOK_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROGRAM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INCLUDE_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HOOK_METHOD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ENHMODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhDefHooksType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"EnhHookDefEntryType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EnhBadiDataType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"EnhBadiDefType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n {\n name: \"PGMID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MAIN_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MAIN_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROGRAM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEF_HOOKS\",\n type: \"EnhDefHooksType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FiltersType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"EnhBadiFilterDefType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"DefHooksType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"EnhHookDefEntryType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/http.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"HTTPID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HTTPTEXT\",\n type: \"asx:HttpTextType\",\n minOccurs: \"0\",\n },\n {\n name: \"HTTPHDL\",\n type: \"asx:HttpHdlType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"HttpTextType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"HttpHandlerType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SERVICEORDER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SERVICEHANDLER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"HttpHdlType\",\n sequence: {\n element: [\n {\n name: \"UCONSERVHANDLER\",\n type: \"HttpHandlerType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/nrob.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"ATTRIBUTES\",\n type: \"asx:NrobAttributesType\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"asx:NrobTextType\",\n minOccurs: \"0\",\n },\n {\n name: \"INTERVALS\",\n type: \"asx:NrobIntervalsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"NrobAttributesType\",\n all: {\n element: [\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOMLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PERCENTAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BUFFER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NOIVBUFFER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GAP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"YEARLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PERCENTAGE2\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"NrobTextType\",\n all: {\n element: [\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTSHORT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"NrobIntervalType\",\n all: {\n element: [\n {\n name: \"NRNR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FROM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NRLVL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROCIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"NrobIntervalsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"NrobIntervalType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/chdo.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"CHDO\",\n type: \"asx:ChdoType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ChdoTcdrpsType\",\n all: {\n element: [\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REPORTNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ARBGEB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FEHLERNR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ChdoReportsType\",\n sequence: {\n element: [\n {\n name: \"TCDRPS\",\n type: \"ChdoTcdrpsType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ChdoTcdobsType\",\n all: {\n element: [\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOCUDEL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOCUINS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOCUD_NOIF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ChdoObjectsType\",\n sequence: {\n element: [\n {\n name: \"TCDOBS\",\n type: \"ChdoTcdobsType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ChdoObjectTextType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ChdoObjectsTextType\",\n sequence: {\n element: [\n {\n name: \"TCDOBTS\",\n type: \"ChdoObjectTextType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ChdoType\",\n all: {\n element: [\n {\n name: \"REPORTS_GENERATED\",\n type: \"ChdoReportsType\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECTS\",\n type: \"ChdoObjectsType\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECTS_TEXT\",\n type: \"ChdoObjectsTextType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/smtg.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SMTG\",\n type: \"asx:SmtgType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SmtgHeaderType\",\n all: {\n element: [\n {\n name: \"TMPL_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TMPL_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TMPL_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TMPL_CATEGORY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TMPL_LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TMPL_APPL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREA_DATE_TIME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREA_USER_ACCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LST_CH_DATE_TIME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LST_CH_USER_ACCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SmtgHeaderTextType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SmtgHeaderTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SmtgHeaderTextType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SmtgContentType\",\n all: {\n element: [\n {\n name: \"TMPL_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SUBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BODY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SmtgContentsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SmtgContentType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SmtgType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"SmtgHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"HEADER_T\",\n type: \"SmtgHeaderTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"CONTENT\",\n type: \"SmtgContentsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sfpf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SFPF\",\n type: \"asx:SfpfType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfpfHeaderType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfpfLayoutType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"XDP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfpfType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"SfpfHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"LAYOUT\",\n type: \"SfpfLayoutType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/scp1.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SCP1\",\n type: \"asx:Scp1Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Scp1AttrType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLI_DEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLI_CAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REFNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPONENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MINRELEASE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MAXRELEASE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORGID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACT_INFO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CATEGORY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Scp1TextType\",\n all: {\n element: [\n {\n name: \"PROFID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Scp1TextTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Scp1TextType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Scp1ValsType\",\n all: {\n element: [\n {\n name: \"PROFID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TABLENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Scp1ValsTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Scp1ValsType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Scp1Type\",\n all: {\n element: [\n {\n name: \"SCPRATTR\",\n type: \"Scp1AttrType\",\n minOccurs: \"0\",\n },\n {\n name: \"SCPRTEXT\",\n type: \"Scp1TextTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"SCPRVALS\",\n type: \"Scp1ValsTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sicf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"URL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFSERVICE\",\n type: \"asx:IcfServiceType\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFDOCU\",\n type: \"asx:IcfDocuType\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFHANDLER_TABLE\",\n type: \"asx:IcfHandlerTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"SOTS\",\n type: \"asx:SicfSotsType\",\n minOccurs: \"0\",\n },\n {\n name: \"SOTS_USE\",\n type: \"asx:SicfSotsUseType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IcfServiceType\",\n all: {\n element: [\n {\n name: \"ICF_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFALTNME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORIG_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICF_PARENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICF_NODE_LOGON\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICF_AUTH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICF_MANDT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFNODGUID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFPARGUID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IcfDocuType\",\n all: {\n element: [\n {\n name: \"ICF_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IcfHandlerType\",\n all: {\n element: [\n {\n name: \"ICF_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFHANDLER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ICFHANDLERORDER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IcfHandlerTableType\",\n sequence: {\n element: [\n {\n name: \"ICFHANDLER\",\n type: \"IcfHandlerType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsHeaderType\",\n all: {\n element: [\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PAKET\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREA_LAN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ALIAS_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsEntryType\",\n all: {\n element: [\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LFD_NUM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsEntriesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SicfSotsEntryType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsItemType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"SicfSotsHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"ENTRIES\",\n type: \"SicfSotsEntriesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SicfSotsItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsUseItemType\",\n all: {\n element: [\n {\n name: \"PGMID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LFD_NUM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SicfSotsUseType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SicfSotsUseItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/srfc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SRFC\",\n type: \"asx:SrfcType\",\n },\n ],\n },\n },\n {\n name: \"SrfcHeaderType\",\n all: {\n element: [\n {\n name: \"CREATEDBY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREATEDON\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREATEDAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHANGEDBY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHANGEDON\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHANGEDAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SrfcType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"SrfcHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"ID\",\n type: \"xs:string\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCOPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FUNCNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEFAULT_PROFILE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/idoc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"IDOC\",\n type: \"asx:IdocType\",\n },\n ],\n },\n },\n {\n name: \"IdocAttributesType\",\n all: {\n element: [\n {\n name: \"IDOCTYP\",\n type: \"xs:string\",\n },\n {\n name: \"DESCRP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLOSED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RELEASED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"APPLREL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIRSTTYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PRETYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SUCCTYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LASTTYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GENERATED\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IdocSyntaxItemType\",\n all: {\n element: [\n {\n name: \"NR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SEGTYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARSEG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARPNO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARFLG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MUSTFL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IdocSyntaxType\",\n sequence: {\n element: [\n {\n name: \"EDI_IAPI02\",\n type: \"IdocSyntaxItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"IdocType\",\n sequence: {\n element: [\n {\n name: \"ATTRIBUTES\",\n type: \"IdocAttributesType\",\n },\n {\n name: \"T_SYNTAX\",\n type: \"IdocSyntaxType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iobj.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"IOBJ\",\n type: \"asx:IobjDetailsType\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPOUNDS\",\n type: \"asx:IobjCompoundsType\",\n minOccurs: \"0\",\n },\n {\n name: \"ATTRIBUTES\",\n type: \"asx:IobjAttributesType\",\n minOccurs: \"0\",\n },\n {\n name: \"NAVIGATION_ATTRIBUTES\",\n type: \"asx:IobjAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"ATTR_NAVIGATION\",\n type: \"asx:IobjAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"HIERARCHY\",\n type: \"asx:IobjAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"ELIMINATION\",\n type: \"asx:IobjAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"HANA_FIELDS_MAPPING\",\n type: \"asx:IobjAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"XXL_ATTRIBUTES\",\n type: \"asx:IobjAnyTableType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IobjDetailsType\",\n all: {\n element: [\n {\n name: \"INFOOBJECT\",\n type: \"xs:string\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJSTAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTIVFL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONTREL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOWCASE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONVEXIT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KYFNM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTLONG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTSHRT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IobjCompoundsItemType\",\n all: {\n element: [\n {\n name: \"IOBJNM_Z\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPOUND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IobjCompoundsType\",\n sequence: {\n element: [\n {\n name: \"BAPI6108CM\",\n type: \"IobjCompoundsItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"IobjAttributesItemType\",\n all: {\n element: [\n {\n name: \"ATRNM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJSTAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATTRIB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KYFNM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IobjAttributesType\",\n sequence: {\n element: [\n {\n name: \"BAPI6108AT\",\n type: \"IobjAttributesItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"IobjAnyTableType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/odso.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"ODSO\",\n type: \"asx:OdsoDetailsType\",\n minOccurs: \"0\",\n },\n {\n name: \"INFOOBJECTS\",\n type: \"asx:OdsoInfoObjectsType\",\n minOccurs: \"0\",\n },\n {\n name: \"NAVIGATION\",\n type: \"asx:OdsoAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"INDEXES\",\n type: \"asx:OdsoAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"INDEX_IOBJ\",\n type: \"asx:OdsoAnyTableType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OdsoDetailsType\",\n all: {\n element: [\n {\n name: \"ODSOBJECT\",\n type: \"xs:string\",\n },\n {\n name: \"ODSOTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJVERS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ODSASIZCAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ODSADATCLS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NOEDSFL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEY_NOT_UNIQUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMOFL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PLANNING_MODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTVIEWGEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTLG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTSH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OdsoInfoObjectsItemType\",\n all: {\n element: [\n {\n name: \"INFOBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJVERS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KEYFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OdsoInfoObjectsType\",\n sequence: {\n element: [\n {\n name: \"BAPI6116IO\",\n type: \"OdsoInfoObjectsItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"OdsoAnyTableType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/shma.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SHMA\",\n type: \"asx:ShmaType\",\n },\n ],\n },\n },\n {\n name: \"ShmaType\",\n all: {\n element: [\n {\n name: \"AREA_NAME\",\n type: \"xs:string\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROOT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AUTO_BUILD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HAS_VERSIONS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TRANSACTIONAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLIENT_DEPENDENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LIFE_CONTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROPAGATION_KIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DISPLACE_KIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MAX_VERSIONS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MAX_AREA_SIZE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MAX_VERSION_SIZE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/styl.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"STYLE\",\n type: \"asx:StylType\",\n },\n ],\n },\n },\n {\n name: \"StylHeaderType\",\n all: {\n element: [\n {\n name: \"TDPRINTER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSTYLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDCPI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDLPI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDOSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTRANSTAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSTATUS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDFIRSTPAR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPAGEFORM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPAGHEIGH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPAGWIDTH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDFAMILY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDVERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PVERS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"StylParagraphItemType\",\n all: {\n element: [\n {\n name: \"TDPARGRAPH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPJUSTIFY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPLDIST\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPTOP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPBOT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPLEFT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPRIGHT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"StylStringItemType\",\n all: {\n element: [\n {\n name: \"TDSTRING\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDMARK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSUPER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSUB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDHIDDEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPROTLINE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"StylTabItemType\",\n all: {\n element: [\n {\n name: \"TDPARGRAPH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPOSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTABPOS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTJUSTIFY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"StylParagraphsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"StylParagraphItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"StylStringsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"StylStringItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"StylTabsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"StylTabItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"StylType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"StylHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAGRAPHS\",\n type: \"StylParagraphsType\",\n minOccurs: \"0\",\n },\n {\n name: \"STRINGS\",\n type: \"StylStringsType\",\n minOccurs: \"0\",\n },\n {\n name: \"TABS\",\n type: \"StylTabsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/susc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TOBC\",\n type: \"asx:SuscTobcType\",\n minOccurs: \"0\",\n },\n {\n name: \"TOBCT\",\n type: \"asx:SuscTobctType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SuscTobcType\",\n all: {\n element: [\n {\n name: \"OCLSS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SuscTobctType\",\n all: {\n element: [\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OCLSS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sucu.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"TbrgAuthType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:SucuAuthType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"TbrgAuthtType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:SucuAuthTextType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TBRG_AUTH\",\n type: \"TbrgAuthType\",\n minOccurs: \"0\",\n },\n {\n name: \"TBRG_AUTHT\",\n type: \"TbrgAuthtType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SucuAuthType\",\n all: {\n element: [\n {\n name: \"BRGRU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SucuAuthTextType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BRGRU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BEZEI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sxci.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SXCI\",\n type: \"asx:SxciType\",\n },\n ],\n },\n },\n {\n name: \"SxciImplDataType\",\n all: {\n element: [\n {\n name: \"IMP_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IMP_CLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXIT_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTER_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTIVE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SxciType\",\n sequence: {\n element: [\n {\n name: \"IMPLEMENTATION_DATA\",\n type: \"SxciImplDataType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/smim.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"URL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FOLDER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXTRA\",\n type: \"asx:SmimExtraType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SmimExtraType\",\n all: {\n element: [\n {\n name: \"FILE_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MIMETYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT_FOLDER_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sqsc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SQSC\",\n type: \"asx:SqscType\",\n },\n ],\n },\n },\n {\n name: \"SqscHeaderType\",\n all: {\n element: [\n {\n name: \"DB_REPOSITORY_PACKAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_REPOSITORY_PROC_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_CATALOG_SCHEMA\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_CATALOG_PROC_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"READ_ONLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTERFACE_POOL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SqscParamType\",\n all: {\n element: [\n {\n name: \"POSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DIRECTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"KIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_TABLE_TYPE_SCHEMA\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_TABLE_TYPE_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_TABLE_TYPE_IS_DDIC\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TRANSFER_TABLE_SCHEMA\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TRANSFER_TABLE_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_NAME_IS_RO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDIC_TABLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDIC_TABLE_IS_RO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SqscParamsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SqscParamType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SqscParamTypeType\",\n all: {\n element: [\n {\n name: \"PARAM_POSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMP_INDEX\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_COMP_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_COMP_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_COMP_NAME_IS_RO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DB_TYPE_TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_TYPE_IS_RO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDIC_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDIC_TYPE_IS_RO\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SqscParamTypesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SqscParamTypeType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"SqscType\",\n sequence: {\n element: [\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HEADER\",\n type: \"SqscHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAMETERS\",\n type: \"SqscParamsType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAMETER_TYPES\",\n type: \"SqscParamTypesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/suso.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TOBJ\",\n type: \"asx:SusoTobjType\",\n minOccurs: \"0\",\n },\n {\n name: \"TOBJT\",\n type: \"asx:SusoTobjtType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SusoTobjType\",\n all: {\n element: [\n {\n name: \"OBJCT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL2\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL3\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL4\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL5\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL6\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL7\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL8\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL9\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIEL0\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OCLSS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FBLOCK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONVERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SusoTobjtType\",\n all: {\n element: [\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sush.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"HEAD\",\n type: \"asx:SushHeadType\",\n minOccurs: \"0\",\n },\n {\n name: \"USOBX\",\n type: \"asx:UsobxType\",\n minOccurs: \"0\",\n },\n {\n name: \"USOBT\",\n type: \"asx:UsobtType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SushHeadType\",\n all: {\n element: [\n {\n name: \"DISPLAY_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SushUsobxItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OKFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SushUsobtItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELD\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOW\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HIGH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UsobxType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SushUsobxItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"UsobtType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SushUsobtItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sktd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SKTD\",\n type: \"asx:SktdType\",\n },\n ],\n },\n },\n {\n name: \"SktdMetadataType\",\n all: {\n element: [\n {\n name: \"MASTER_LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RESPONSIBLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ABAP_LANGUAGE_VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SktdRefObjectType\",\n all: {\n element: [\n {\n name: \"URI\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SktdType\",\n sequence: {\n element: [\n {\n name: \"METADATA\",\n type: \"SktdMetadataType\",\n minOccurs: \"0\",\n },\n {\n name: \"REF_OBJECT\",\n type: \"SktdRefObjectType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/form.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"FORM\",\n type: \"asx:FormTableType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormHeaderType\",\n all: {\n element: [\n {\n name: \"TDFORM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDFIRSTPAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormTextHeaderType\",\n all: {\n element: [\n {\n name: \"TDOBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTITLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDFORM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSTYLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormPageItemType\",\n all: {\n element: [\n {\n name: \"PAGENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NEXTPAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormWindowItemType\",\n all: {\n element: [\n {\n name: \"WINDOW\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PAGENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormParagraphItemType\",\n all: {\n element: [\n {\n name: \"TDPARGRAPH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormStringItemType\",\n all: {\n element: [\n {\n name: \"TDSTRING\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDMARK\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormTabItemType\",\n all: {\n element: [\n {\n name: \"TDPARGRAPH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDPOSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormPageWindowItemType\",\n all: {\n element: [\n {\n name: \"TDWINDOW\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PAGENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormPagesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormPageItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FormWindowsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormWindowItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FormPageWindowsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormPageWindowItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FormParagraphsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormParagraphItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FormStringsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormStringItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FormTabsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormTabItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"FormDataType\",\n sequence: {\n element: [\n {\n name: \"FORM_HEADER\",\n type: \"FormHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT_HEADER\",\n type: \"FormTextHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"ORIG_LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PAGES\",\n type: \"FormPagesType\",\n minOccurs: \"0\",\n },\n {\n name: \"WINDOWS\",\n type: \"FormWindowsType\",\n minOccurs: \"0\",\n },\n {\n name: \"PAGE_WINDOWS\",\n type: \"FormPageWindowsType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAGRAPHS\",\n type: \"FormParagraphsType\",\n minOccurs: \"0\",\n },\n {\n name: \"STRINGS\",\n type: \"FormStringsType\",\n minOccurs: \"0\",\n },\n {\n name: \"TABS\",\n type: \"FormTabsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FormTableType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"FormDataType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/tdlines.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"TdlineItemType\",\n all: {\n element: [\n {\n name: \"TDFORMAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDLINE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TdlinesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:TdlineItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TDLINES\",\n type: \"TdlinesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/xinx.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"XINX\",\n type: \"asx:XinxType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"XinxDd12vType\",\n all: {\n element: [\n {\n name: \"SQLTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INDEXNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4VERS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DBINDEX\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"UNIQUEFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ISEXTIND\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"XinxDd17vItemType\",\n all: {\n element: [\n {\n name: \"DDLANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SQLTAB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INDEXNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"POSITION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"XinxType\",\n sequence: {\n element: [\n {\n name: \"DD12V\",\n type: \"XinxDd12vType\",\n minOccurs: \"0\",\n },\n {\n name: \"T_DD17V\",\n type: \"TDd17vType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TDd17vType\",\n sequence: {\n element: [\n {\n name: \"DD17V\",\n type: \"XinxDd17vItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/para.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TPARA\",\n type: \"asx:ParaTparaType\",\n minOccurs: \"0\",\n },\n {\n name: \"TPARAT\",\n type: \"asx:ParaTparatType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ParaTparaType\",\n all: {\n element: [\n {\n name: \"PARAMID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ParaTparatType\",\n all: {\n element: [\n {\n name: \"PARAMID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPRACHE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/pers.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PERS\",\n type: \"asx:PersType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PersRegType\",\n all: {\n element: [\n {\n name: \"PERS_KEY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACCESS_CL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DISTRIB_CL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DIALOG_FB\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPONENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PersRegTextType\",\n all: {\n element: [\n {\n name: \"LANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PERS_KEY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PersType\",\n sequence: {\n element: [\n {\n name: \"PERS_REG\",\n type: \"PersRegType1\",\n minOccurs: \"0\",\n },\n {\n name: \"PERS_REG_TEXT\",\n type: \"PersRegTextType1\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PersRegType1\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"PersRegType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"PersRegTextType1\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"PersRegTextType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/oa2p.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PROFILE\",\n type: \"asx:Oa2pProfileType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Oa2pProfileType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROFILE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"T_SCOPES\",\n type: \"TScopesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TScopesItemType\",\n all: {\n element: [\n {\n name: \"SCOPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TScopesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"TScopesItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/splo.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TSPLT\",\n type: \"asx:SploTspltType\",\n minOccurs: \"0\",\n },\n {\n name: \"TSPLD\",\n type: \"asx:SploTspldType\",\n minOccurs: \"0\",\n },\n {\n name: \"TSP0P\",\n type: \"asx:SploTsp0pType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SploTspltType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PAPART\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SploTspldType\",\n all: {\n element: [\n {\n name: \"PAPART\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PFORMAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ORIENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTCOLUMNS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTROWS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LISTAREA\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SploTsp0pType\",\n all: {\n element: [\n {\n name: \"PDPAPER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/tobj.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"OBJH\",\n type: \"asx:TobjObjhType\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJT\",\n type: \"asx:TobjObjtType\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJS\",\n type: \"asx:TobjTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJSL\",\n type: \"asx:TobjTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJM\",\n type: \"asx:TobjTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"TOBJ\",\n type: \"asx:TobjExtraType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TobjObjhType\",\n all: {\n element: [\n {\n name: \"OBJECTNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECTTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLIDEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGDEP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJCATEG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJTRANSP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TobjObjtType\",\n all: {\n element: [\n {\n name: \"LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECTNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECTTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TobjTddatType\",\n all: {\n element: [\n {\n name: \"TABNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TobjExtraType\",\n sequence: {\n element: [\n {\n name: \"TDDAT\",\n type: \"TobjTddatType\",\n minOccurs: \"0\",\n },\n {\n name: \"TVDIR\",\n type: \"TvdirType\",\n minOccurs: \"0\",\n },\n {\n name: \"TVIMF\",\n type: \"TvdirType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"TobjTableType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"TvdirType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"TvdirType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sprx.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"ProxyHeaderType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:SprxHeaderItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ProxyDataType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:SprxDataItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PROXY_HEADER\",\n type: \"ProxyHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"PROXY_DATA\",\n type: \"ProxyDataType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SprxHeaderItemType\",\n all: {\n element: [\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INACTIVE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_NSPCE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_GNSPCE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SprxDataItemType\",\n all: {\n element: [\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_NAME1\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INACTIVE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IFR_TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"R3_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"R3_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sots.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SOTS\",\n type: \"asx:SotsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotsHeaderType\",\n all: {\n element: [\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PAKET\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CREA_LAN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ALIAS_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotsEntryItemType\",\n all: {\n element: [\n {\n name: \"CONCEPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LFD_NUM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotsItemType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"SotsHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"ENTRIES\",\n type: \"EntriesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SotsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SotsItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EntriesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SotsEntryItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iarp.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"ATTR\",\n type: \"asx:IarpAttrType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAMETERS\",\n type: \"asx:ParametersType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IarpAttrType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEVCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IarpParamItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ParametersType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"IarpParamItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iasp.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"ATTR\",\n type: \"asx:IaspAttrType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAMETERS\",\n type: \"asx:ParametersType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IaspAttrType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEVCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VERSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IaspParamItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ParametersType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"IaspParamItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/char.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"CHAR\",\n type: \"asx:CharType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CharClsAttributeType\",\n all: {\n element: [\n {\n name: \"CLSNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATNAM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATFOR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATVOR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CharClsAttributetItemType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CLSNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATBEZ\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CharType\",\n sequence: {\n element: [\n {\n name: \"CLS_ATTRIBUTE\",\n type: \"CharClsAttributeType\",\n minOccurs: \"0\",\n },\n {\n name: \"CLS_ATTRIBUTET\",\n type: \"ClsAttributetType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ClsAttributetType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"CharClsAttributetItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/auth.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"AUTHX\",\n type: \"asx:AuthxType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AuthxType\",\n all: {\n element: [\n {\n name: \"FIELDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ROLLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AUTHCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DATATYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LNG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LENG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OUTPUTLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LOWERCASE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/area.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"NODENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENTNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTSH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TXTLG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/avar.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"IdsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:AvarIdItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IDS\",\n type: \"IdsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AvarIdItemType\",\n all: {\n element: [\n {\n name: \"OBJ_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTIVE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/jobd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"JOBD\",\n type: \"asx:JobdType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"JobdType\",\n all: {\n element: [\n {\n name: \"JOBNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REPID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"JDPACKAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"JOBCOUNT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"JOBCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"BTCSYS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/nspc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"NSPC\",\n type: \"asx:NspcType\",\n minOccurs: \"0\",\n },\n {\n name: \"NSPC_TEXT\",\n type: \"asx:NspcTextType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"NspcType\",\n all: {\n element: [\n {\n name: \"NAMESPACE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REPLICENSE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SSCRFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SAPFLAG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GEN_ONLY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"NspcTextType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OWNER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/pinf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PINF\",\n type: \"asx:PinfType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PinfAttributesType\",\n all: {\n element: [\n {\n name: \"PACK_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTF_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PinfElementType\",\n all: {\n element: [\n {\n name: \"PACK_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTF_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ELEMENT_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ELEMENT_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PinfType\",\n sequence: {\n element: [\n {\n name: \"ATTRIBUTES\",\n type: \"PinfAttributesType\",\n minOccurs: \"0\",\n },\n {\n name: \"ELEMENTS\",\n type: \"ElementsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ElementsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"PinfElementType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/vcls.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"VCLDIR\",\n type: \"asx:VclsVcldirType\",\n minOccurs: \"0\",\n },\n {\n name: \"VCLSTRUC_TAB\",\n type: \"asx:VclstrucTabType\",\n minOccurs: \"0\",\n },\n {\n name: \"VCLMF_TAB\",\n type: \"asx:VclmfTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VclsVcldirType\",\n all: {\n element: [\n {\n name: \"VCLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AUTHOR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHANGEDATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VclsVclstrucItemType\",\n all: {\n element: [\n {\n name: \"VCLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VclsVclmfItemType\",\n all: {\n element: [\n {\n name: \"VCLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FORM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"VclstrucTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"VclsVclstrucItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"VclmfTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"VclsVclmfItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/stvi.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"STVI\",\n type: \"asx:StviType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"StviShdtvciuType\",\n all: {\n element: [\n {\n name: \"TCODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VARIANT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"StviType\",\n sequence: {\n element: [\n {\n name: \"SHDTVCIU\",\n type: \"StviShdtvciuType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sod1.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SOD1\",\n type: \"asx:Sod1Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Sod1MetadataType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTER_LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Sod1Type\",\n sequence: {\n element: [\n {\n name: \"METADATA\",\n type: \"Sod1MetadataType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sod2.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SOD2\",\n type: \"asx:Sod2Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Sod2MetadataType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTER_LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Sod2Type\",\n sequence: {\n element: [\n {\n name: \"METADATA\",\n type: \"Sod2MetadataType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/shi3.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"TREE_HEAD\",\n type: \"asx:Shi3TreeHeadType\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_TITLES\",\n type: \"asx:Shi3TreeTitlesType\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_NODES\",\n type: \"asx:Shi3TreeNodesType\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_REFS\",\n type: \"asx:Shi3AnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_TEXTS\",\n type: \"asx:Shi3AnyTableType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi3TreeHeadType\",\n all: {\n element: [\n {\n name: \"TREE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi3TreeTitleItemType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi3TreeNodeItemType\",\n all: {\n element: [\n {\n name: \"NODE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi3TreeTitlesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Shi3TreeTitleItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Shi3TreeNodesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Shi3TreeNodeItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"Shi3AnyTableType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"ItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ItemType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/shi5.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SHI5\",\n type: \"asx:Shi5Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi5HeaderType\",\n all: {\n element: [\n {\n name: \"EXT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi5TextItemType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi5Type\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"Shi5HeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXTS\",\n type: \"TextsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TextsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Shi5TextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/shi8.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SHI8\",\n type: \"asx:Shi8Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Shi8Type\",\n all: {\n element: [\n {\n name: \"SFW_ASS_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SWITCH_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"REACTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TREE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NODE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/scvi.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SCVI\",\n type: \"asx:ScviType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ScviShdsvciType\",\n all: {\n element: [\n {\n name: \"TCODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SCREEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VARIANT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ScviType\",\n sequence: {\n element: [\n {\n name: \"SHDSVCI\",\n type: \"ScviShdsvciType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/acid.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/avas.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"AVAS\",\n type: \"asx:AvasType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AvasHeaderType\",\n all: {\n element: [\n {\n name: \"GUID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATTRIBUTE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AvasType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"AvasHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/cmod.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"ModactType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:CmodModactItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ModtextType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:CmodModTextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ModattrType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:CmodModAttrItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"MODACT\",\n type: \"ModactType\",\n minOccurs: \"0\",\n },\n {\n name: \"MODTEXT\",\n type: \"ModtextType\",\n minOccurs: \"0\",\n },\n {\n name: \"MODATTR\",\n type: \"ModattrType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CmodModactItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MEMBER\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CmodModTextItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MODTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CmodModAttrItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATUS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/dial.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DIAL\",\n type: \"asx:DialType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DialTdctType\",\n all: {\n element: [\n {\n name: \"DIALOGNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DYNR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PROG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DDTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DialDiaparType\",\n all: {\n element: [\n {\n name: \"DNAM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DYNR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DPNAM\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DPLEN\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"P_TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DialDiaparTabType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"DialDiaparType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"DialType\",\n sequence: {\n element: [\n {\n name: \"TDCT\",\n type: \"DialTdctType\",\n minOccurs: \"0\",\n },\n {\n name: \"DIA_PARS\",\n type: \"DialDiaparTabType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/enhc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"CompositeChildsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:EnhcCompositeChildItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"EnhChildsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:EnhcEnhChildItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPOSITE_CHILDS\",\n type: \"CompositeChildsType\",\n minOccurs: \"0\",\n },\n {\n name: \"ENH_CHILDS\",\n type: \"EnhChildsType\",\n minOccurs: \"0\",\n },\n {\n name: \"LONGTEXT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhcCompositeChildItemType\",\n all: {\n element: [\n {\n name: \"ENHCOMPOSITENAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhcEnhChildItemType\",\n all: {\n element: [\n {\n name: \"ENHNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ensc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SHORTTEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ENH_SPOTS\",\n type: \"asx:EnhSpotsType\",\n minOccurs: \"0\",\n },\n {\n name: \"COMP_ENH_SPOTS\",\n type: \"asx:EnhSpotsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnscEnhSpotItemType\",\n all: {\n element: [\n {\n name: \"ENHSPOTNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"EnhSpotsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"EnscEnhSpotItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/otgr.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"OTGR\",\n type: \"asx:OtgrType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OtgrTypeGroupType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OtgrTextItemType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OtgrElementType\",\n all: {\n element: [\n {\n name: \"OBJ_TYPE_GROUP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJ_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OtgrType\",\n sequence: {\n element: [\n {\n name: \"CLS_TYPE_GROUP\",\n type: \"OtgrTypeGroupType\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXTS\",\n type: \"TextsType\",\n minOccurs: \"0\",\n },\n {\n name: \"ELEMENTS\",\n type: \"ElementsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TextsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"OtgrTextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ElementsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"OtgrElementType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sfsw.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"asx:SfswHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME80\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT_BF\",\n type: \"asx:ParentBfType\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFLICTS\",\n type: \"asx:ConflictsType\",\n minOccurs: \"0\",\n },\n {\n name: \"PACKAGES\",\n type: \"asx:PackagesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfswHeaderType\",\n all: {\n element: [\n {\n name: \"SWITCH_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME80\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfswParentBfItemType\",\n all: {\n element: [\n {\n name: \"BF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfswConflictItemType\",\n all: {\n element: [\n {\n name: \"CONFLICT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfswPackageItemType\",\n all: {\n element: [\n {\n name: \"PACKAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ParentBfType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfswParentBfItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ConflictsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfswConflictItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"PackagesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfswPackageItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ssst.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"asx:SsstHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"SSFPARAS\",\n type: \"asx:SsstAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"SSFSTRINGS\",\n type: \"asx:SsstAnyTableType\",\n minOccurs: \"0\",\n },\n {\n name: \"STXSTAB\",\n type: \"asx:SsstAnyTableType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SsstHeaderType\",\n all: {\n element: [\n {\n name: \"SSFNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTERLANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDFAMILY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SsstAnyTableType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"ItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ItemType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sfbf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"asx:SfbfHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME80\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ASSIGNED_SWITCHES\",\n type: \"asx:AssignedSwitchesType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT_BFS\",\n type: \"asx:ParentBfsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbfHeaderType\",\n all: {\n element: [\n {\n name: \"BF_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME80\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbfAssignedSwitchItemType\",\n all: {\n element: [\n {\n name: \"SWITCH\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbfParentBfItemType\",\n all: {\n element: [\n {\n name: \"BF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AssignedSwitchesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfbfAssignedSwitchItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ParentBfsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfbfParentBfItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sfbs.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"HEADER\",\n type: \"asx:SfbsHeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME80\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ASSIGNED_BF\",\n type: \"asx:AssignedBfType\",\n minOccurs: \"0\",\n },\n {\n name: \"NESTED_BFS\",\n type: \"asx:NestedBfsType\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT_BFS\",\n type: \"asx:ParentBfsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbsHeaderType\",\n all: {\n element: [\n {\n name: \"BS_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME32\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME80\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbsAssignedBfItemType\",\n all: {\n element: [\n {\n name: \"BF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbsNestedBfsItemType\",\n all: {\n element: [\n {\n name: \"BFS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SfbsParentBfsItemType\",\n all: {\n element: [\n {\n name: \"BFS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AssignedBfType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfbsAssignedBfItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"NestedBfsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfbsNestedBfsItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"ParentBfsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"SfbsParentBfsItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sxsd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SXSD\",\n type: \"asx:SxsdType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SxsdBadiType\",\n all: {\n element: [\n {\n name: \"BADI_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTERFACE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SxsdType\",\n sequence: {\n element: [\n {\n name: \"BADI\",\n type: \"SxsdBadiType\",\n minOccurs: \"0\",\n },\n {\n name: \"MAST_LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXT_CLNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ucsa.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"UCSA\",\n type: \"asx:UcsaType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UcsaHeaderType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UcsaType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"UcsaHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/udmo.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DM40L\",\n type: \"asx:UdmoDm40lType\",\n minOccurs: \"0\",\n },\n {\n name: \"UDMO_ENTITIES\",\n type: \"asx:UdmoEntitiesType\",\n minOccurs: \"0\",\n },\n {\n name: \"UDMO_TEXTS\",\n type: \"asx:UdmoTextsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UdmoDm40lType\",\n all: {\n element: [\n {\n name: \"DMOID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DMOTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UdmoEntityItemType\",\n all: {\n element: [\n {\n name: \"DMOID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ENTID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UdmoTextItemType\",\n all: {\n element: [\n {\n name: \"SPRACHE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DMOID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGBEZ\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"AS4LOCAL\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"UdmoEntitiesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"UdmoEntityItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"UdmoTextsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"UdmoTextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iaxu.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"ATTR\",\n type: \"asx:IaxuAttrType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IaxuAttrType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MIMETYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TTIME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEVCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iext.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"IEXT\",\n type: \"asx:IextType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IextAttributesType\",\n all: {\n element: [\n {\n name: \"EXTTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"IDOCTYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CIMTYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IextSyntaxItemType\",\n all: {\n element: [\n {\n name: \"EXTTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SEGMENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IextType\",\n sequence: {\n element: [\n {\n name: \"ATTRIBUTES\",\n type: \"IextAttributesType\",\n minOccurs: \"0\",\n },\n {\n name: \"T_SYNTAX\",\n type: \"TSyntaxType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TSyntaxType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"IextSyntaxItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/samc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SAMC\",\n type: \"asx:SamcType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SamcHeaderType\",\n all: {\n element: [\n {\n name: \"AMC_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SamcType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"SamcHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sapc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"SAPC\",\n type: \"asx:SapcType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SapcHeaderType\",\n all: {\n element: [\n {\n name: \"APC_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"SapcType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"SapcHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/dsys.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"LongtextsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:DsysLongtextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"LONGTEXTS\",\n type: \"LongtextsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DsysHeadType\",\n all: {\n element: [\n {\n name: \"TDOBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DsysLineItemType\",\n all: {\n element: [\n {\n name: \"TDFORMAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDLINE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DsysLongtextItemType\",\n sequence: {\n element: [\n {\n name: \"DOKIL\",\n type: \"DokilType\",\n minOccurs: \"0\",\n },\n {\n name: \"HEAD\",\n type: \"DsysHeadType\",\n minOccurs: \"0\",\n },\n {\n name: \"LINES\",\n type: \"LinesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DokilType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"LinesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"DsysLineItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ftgl.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"FTGL\",\n type: \"asx:FtglType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FtglHeaderType\",\n all: {\n element: [\n {\n name: \"FEATURE_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STATUS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"FtglType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"FtglHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/prag.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PRAG\",\n type: \"asx:PragType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PragType\",\n all: {\n element: [\n {\n name: \"PRAGMA\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"EXTENSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SIGNATURE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/cus0.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"CUS0\",\n type: \"asx:Cus0Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus0HeaderType\",\n all: {\n element: [\n {\n name: \"ACTIVITY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DOCU_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATTRIBUTES\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"C_ACTIVITY\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TCODE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus0TextItemType\",\n all: {\n element: [\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus0Type\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"Cus0HeaderType\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXTS\",\n type: \"TextsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TextsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Cus0TextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/cus1.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"CUS1\",\n type: \"asx:Cus1Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus1ActhType\",\n all: {\n element: [\n {\n name: \"ACT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ACT_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus1ActtItemType\",\n all: {\n element: [\n {\n name: \"ACT_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus1Type\",\n sequence: {\n element: [\n {\n name: \"ACTIVITY_HEADER\",\n type: \"Cus1ActhType\",\n minOccurs: \"0\",\n },\n {\n name: \"ACTIVITY_TITLE\",\n type: \"ActivityTitleType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ActivityTitleType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Cus1ActtItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/cus2.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"CUS2\",\n type: \"asx:Cus2Type\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus2AtrhType\",\n all: {\n element: [\n {\n name: \"ATTR_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"ATTR_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus2AtrtItemType\",\n all: {\n element: [\n {\n name: \"ATTR_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"Cus2Type\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"Cus2AtrhType\",\n minOccurs: \"0\",\n },\n {\n name: \"TITLES\",\n type: \"TitlesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"TitlesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"Cus2AtrtItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/docv.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DOC\",\n type: \"asx:DocvType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DocvHeadType\",\n all: {\n element: [\n {\n name: \"TDOBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDTITLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DocvLineItemType\",\n all: {\n element: [\n {\n name: \"TDFORMAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDLINE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DocvType\",\n sequence: {\n element: [\n {\n name: \"DOCTITLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"HEAD\",\n type: \"DocvHeadType\",\n minOccurs: \"0\",\n },\n {\n name: \"LINES\",\n type: \"LinesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"LinesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"DocvLineItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/doct.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"LongtextsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:DoctLongtextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"LONGTEXTS\",\n type: \"LongtextsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DoctHeadType\",\n all: {\n element: [\n {\n name: \"TDOBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDSPRAS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DoctLineItemType\",\n all: {\n element: [\n {\n name: \"TDFORMAT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDLINE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DoctLongtextItemType\",\n sequence: {\n element: [\n {\n name: \"DOKIL\",\n type: \"DokilType\",\n minOccurs: \"0\",\n },\n {\n name: \"HEAD\",\n type: \"DoctHeadType\",\n minOccurs: \"0\",\n },\n {\n name: \"LINES\",\n type: \"LinesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DokilType\",\n all: {\n element: [\n {\n name: \"ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJECT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TYP\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"LinesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"DoctLineItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/cmpt.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"CMPT\",\n type: \"asx:CmptType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CmptHeaderType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"CmptType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"CmptHeaderType\",\n minOccurs: \"0\",\n },\n ],\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/amsd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"AMSD\",\n type: \"asx:AmsdType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AmsdMetadataType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTER_LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PACKAGE_REF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AmsdType\",\n sequence: {\n element: [\n {\n name: \"METADATA\",\n type: \"AmsdMetadataType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/apis.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"APIS\",\n type: \"asx:ApisType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ApisHeaderType\",\n all: {\n element: [\n {\n name: \"API_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"ApisType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"ApisHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/wdya.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"PropertiesType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:WdyaPropertyItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"APP\",\n type: \"asx:WdyaAppType\",\n minOccurs: \"0\",\n },\n {\n name: \"PROPERTIES\",\n type: \"PropertiesType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WdyaAppType\",\n all: {\n element: [\n {\n name: \"APPLICATION_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPONENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"INTERFACE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPTION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WdyaPropertyItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/webi.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"WEBI\",\n type: \"asx:WebbiType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WebbiVepTextType\",\n all: {\n element: [\n {\n name: \"VEPNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCRIPT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"LANGU\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WebbiVepHeaderItemType\",\n all: {\n element: [\n {\n name: \"VEPNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"GENERATOR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"FEATURES\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WebbiType\",\n sequence: {\n element: [\n {\n name: \"VEPTEXT\",\n type: \"WebbiVepTextType\",\n minOccurs: \"0\",\n },\n {\n name: \"PVEPHEADER\",\n type: \"PvepheaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PvepheaderType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"WebbiVepHeaderItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/wdca.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"OUTLINE\",\n type: \"asx:WdcaOutlineType\",\n minOccurs: \"0\",\n },\n {\n name: \"DATA\",\n type: \"asx:DataType\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCR_LANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WdcaOutlineType\",\n all: {\n element: [\n {\n name: \"CONFIG_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_VAR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WdcaDataItemType\",\n all: {\n element: [\n {\n name: \"CONFIG_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_VAR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"COMPNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONTENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DataType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"WdcaDataItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/wdcc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"OBJECT_NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_ID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_TYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CONFIG_VAR\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"WDA_COMPONENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARENT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RELID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OTR_TEXT\",\n type: \"asx:OtrTextType\",\n minOccurs: \"0\",\n },\n {\n name: \"DESCR_LANG\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"WdccOtrTextItemType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"OtrTextType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"WdccOtrTextItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/pdts.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"PDTS\",\n type: \"asx:PdtsType\",\n minOccurs: \"0\",\n },\n {\n name: \"CONTAINER\",\n type: \"asx:PdtsContainerType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PdtsHeaderType\",\n all: {\n element: [\n {\n name: \"OTYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"SHORT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"STEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PdtsType\",\n sequence: {\n element: [\n {\n name: \"HEADER\",\n type: \"PdtsHeaderType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"PdtsContainerType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n anyAttribute: {\n processContents: \"lax\",\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/w3ht.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"ParamsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:W3xxParamItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAMS\",\n type: \"ParamsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"W3xxParamItemType\",\n all: {\n element: [\n {\n name: \"RELID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/w3mi.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"ParamsType\",\n sequence: {\n element: [\n {\n name: \"item\",\n type: \"asx:W3xxParamItemType\",\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n },\n ],\n },\n },\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PARAMS\",\n type: \"ParamsType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"W3xxParamItemType\",\n all: {\n element: [\n {\n name: \"RELID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"OBJID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"VALUE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iatu.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"ATTR\",\n type: \"asx:IatuAttrType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IatuAttrType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MIMETYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"CHNAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TDATE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TTIME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEVCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iamu.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"IAMU\",\n type: \"asx:IamuType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IamuAttributesType\",\n all: {\n element: [\n {\n name: \"OBJID\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"TEXT\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MIMETYPE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"DEVCLASS\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"IamuType\",\n sequence: {\n element: [\n {\n name: \"ATTRIBUTES\",\n type: \"IamuAttributesType\",\n minOccurs: \"0\",\n },\n {\n name: \"EXTENSION\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/drul.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n element: [\n {\n name: \"DRUL\",\n type: \"asx:DrulType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DrulMetadataType\",\n all: {\n element: [\n {\n name: \"NAME\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"MASTER_LANGUAGE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"RESPONSIBLE\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n {\n name: \"PACKAGE_REF\",\n type: \"xs:string\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"DrulType\",\n sequence: {\n element: [\n {\n name: \"METADATA\",\n type: \"DrulMetadataType\",\n minOccurs: \"0\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/aifc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/aqbg.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/aqqu.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/aqsg.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/asfc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/g4ba.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/g4bs.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iwmo.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iwom.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iwpr.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iwsg.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iwsv.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/iwvb.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sldd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sobj.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sppf.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ueno.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ecat.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ecsd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ecsp.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ectc.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ectd.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ecvo.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/fdt0.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/sfpi.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/ssfo.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n },\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n type: \"AbapgitType\",\n },\n ],\n complexType: [\n {\n name: \"AbapgitType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n processContents: \"lax\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/wapa.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * Auto-generated schema from XSD\n * \n * DO NOT EDIT - Generated by ts-xsd codegen\n * Source: abapgit/wdyn.xsd\n */\n\nexport default {\n $xmlns: {\n xs: \"http://www.w3.org/2001/XMLSchema\",\n asx: \"http://www.sap.com/abapxml\",\n },\n targetNamespace: \"http://www.sap.com/abapxml\",\n elementFormDefault: \"unqualified\",\n element: [\n {\n name: \"abapGit\",\n complexType: {\n sequence: {\n element: [\n {\n ref: \"asx:abap\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer\",\n type: \"xs:string\",\n use: \"required\",\n },\n {\n name: \"serializer_version\",\n type: \"xs:string\",\n use: \"required\",\n },\n ],\n },\n },\n {\n name: \"Schema\",\n abstract: true,\n },\n {\n name: \"values\",\n type: \"asx:AbapValuesType\",\n },\n {\n name: \"abap\",\n type: \"asx:AbapType\",\n },\n ],\n complexType: [\n {\n name: \"AbapValuesType\",\n all: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"ObjslValuesType\",\n sequence: {\n any: [\n {\n minOccurs: \"0\",\n maxOccurs: \"unbounded\",\n processContents: \"lax\",\n },\n ],\n },\n },\n {\n name: \"AbapType\",\n sequence: {\n element: [\n {\n ref: \"asx:values\",\n },\n ],\n },\n attribute: [\n {\n name: \"version\",\n type: \"xs:string\",\n \"default\": \"1.0\",\n },\n ],\n },\n ],\n} as const;\n","/**\n * AbapGit Typed Schemas\n * \n * Auto-generated by ts-xsd codegen - DO NOT EDIT\n * \n * Each schema provides:\n * - _type: Full AbapGitType (for XML build/parse)\n * - _values: Inner values type (for handler mapping)\n * - parse(xml) → fully typed object\n * - build(data) → XML string\n * - schema → raw schema literal\n */\n\nimport { abapGitSchema } from '../../lib/handlers/abapgit-schema';\n\n// Raw schemas\nimport _clas from './schemas/clas';\nimport _devc from './schemas/devc';\nimport _doma from './schemas/doma';\nimport _dtel from './schemas/dtel';\nimport _intf from './schemas/intf';\nimport _prog from './schemas/prog';\nimport _fugr from './schemas/fugr';\nimport _tabl from './schemas/tabl';\nimport _ttyp from './schemas/ttyp';\nimport _bdef from './schemas/bdef';\nimport _srvd from './schemas/srvd';\nimport _srvb from './schemas/srvb';\nimport _dcls from './schemas/dcls';\nimport _ddls from './schemas/ddls';\nimport _ddlx from './schemas/ddlx';\nimport _msag from './schemas/msag';\nimport _view from './schemas/view';\nimport _enqu from './schemas/enqu';\nimport _shlp from './schemas/shlp';\nimport _tran from './schemas/tran';\nimport _type from './schemas/type';\nimport _xslt from './schemas/xslt';\nimport _enho from './schemas/enho';\nimport _enhs from './schemas/enhs';\nimport _http from './schemas/http';\nimport _nrob from './schemas/nrob';\nimport _chdo from './schemas/chdo';\nimport _smtg from './schemas/smtg';\nimport _sfpf from './schemas/sfpf';\nimport _scp1 from './schemas/scp1';\nimport _sicf from './schemas/sicf';\nimport _srfc from './schemas/srfc';\nimport _idoc from './schemas/idoc';\nimport _iobj from './schemas/iobj';\nimport _odso from './schemas/odso';\nimport _shma from './schemas/shma';\nimport _styl from './schemas/styl';\nimport _susc from './schemas/susc';\nimport _sucu from './schemas/sucu';\nimport _sxci from './schemas/sxci';\nimport _smim from './schemas/smim';\nimport _sqsc from './schemas/sqsc';\nimport _suso from './schemas/suso';\nimport _sush from './schemas/sush';\nimport _sktd from './schemas/sktd';\nimport _form from './schemas/form';\nimport _tdlines from './schemas/tdlines';\nimport _xinx from './schemas/xinx';\nimport _para from './schemas/para';\nimport _pers from './schemas/pers';\nimport _oa2p from './schemas/oa2p';\nimport _splo from './schemas/splo';\nimport _tobj from './schemas/tobj';\nimport _sprx from './schemas/sprx';\nimport _sots from './schemas/sots';\nimport _iarp from './schemas/iarp';\nimport _iasp from './schemas/iasp';\nimport _char from './schemas/char';\nimport _auth from './schemas/auth';\nimport _area from './schemas/area';\nimport _avar from './schemas/avar';\nimport _jobd from './schemas/jobd';\nimport _nspc from './schemas/nspc';\nimport _pinf from './schemas/pinf';\nimport _vcls from './schemas/vcls';\nimport _stvi from './schemas/stvi';\nimport _sod1 from './schemas/sod1';\nimport _sod2 from './schemas/sod2';\nimport _shi3 from './schemas/shi3';\nimport _shi5 from './schemas/shi5';\nimport _shi8 from './schemas/shi8';\nimport _scvi from './schemas/scvi';\nimport _acid from './schemas/acid';\nimport _avas from './schemas/avas';\nimport _cmod from './schemas/cmod';\nimport _dial from './schemas/dial';\nimport _enhc from './schemas/enhc';\nimport _ensc from './schemas/ensc';\nimport _otgr from './schemas/otgr';\nimport _sfsw from './schemas/sfsw';\nimport _ssst from './schemas/ssst';\nimport _sfbf from './schemas/sfbf';\nimport _sfbs from './schemas/sfbs';\nimport _sxsd from './schemas/sxsd';\nimport _ucsa from './schemas/ucsa';\nimport _udmo from './schemas/udmo';\nimport _iaxu from './schemas/iaxu';\nimport _iext from './schemas/iext';\nimport _samc from './schemas/samc';\nimport _sapc from './schemas/sapc';\nimport _dsys from './schemas/dsys';\nimport _ftgl from './schemas/ftgl';\nimport _prag from './schemas/prag';\nimport _cus0 from './schemas/cus0';\nimport _cus1 from './schemas/cus1';\nimport _cus2 from './schemas/cus2';\nimport _docv from './schemas/docv';\nimport _doct from './schemas/doct';\nimport _cmpt from './schemas/cmpt';\nimport _amsd from './schemas/amsd';\nimport _apis from './schemas/apis';\nimport _wdya from './schemas/wdya';\nimport _webi from './schemas/webi';\nimport _wdca from './schemas/wdca';\nimport _wdcc from './schemas/wdcc';\nimport _pdts from './schemas/pdts';\nimport _w3ht from './schemas/w3ht';\nimport _w3mi from './schemas/w3mi';\nimport _iatu from './schemas/iatu';\nimport _iamu from './schemas/iamu';\nimport _drul from './schemas/drul';\nimport _aifc from './schemas/aifc';\nimport _aqbg from './schemas/aqbg';\nimport _aqqu from './schemas/aqqu';\nimport _aqsg from './schemas/aqsg';\nimport _asfc from './schemas/asfc';\nimport _g4ba from './schemas/g4ba';\nimport _g4bs from './schemas/g4bs';\nimport _iwmo from './schemas/iwmo';\nimport _iwom from './schemas/iwom';\nimport _iwpr from './schemas/iwpr';\nimport _iwsg from './schemas/iwsg';\nimport _iwsv from './schemas/iwsv';\nimport _iwvb from './schemas/iwvb';\nimport _sldd from './schemas/sldd';\nimport _sobj from './schemas/sobj';\nimport _sppf from './schemas/sppf';\nimport _ueno from './schemas/ueno';\nimport _ecat from './schemas/ecat';\nimport _ecsd from './schemas/ecsd';\nimport _ecsp from './schemas/ecsp';\nimport _ectc from './schemas/ectc';\nimport _ectd from './schemas/ectd';\nimport _ecvo from './schemas/ecvo';\nimport _fdt0 from './schemas/fdt0';\nimport _sfpi from './schemas/sfpi';\nimport _ssfo from './schemas/ssfo';\nimport _wapa from './schemas/wapa';\nimport _wdyn from './schemas/wdyn';\n\n// Full AbapGit types - using flattened root types\n// Note: Generated types may be unions, we import the raw schema type\nimport type { ClasSchema as _ClasSchema } from './types/clas';\nimport type { DevcSchema as _DevcSchema } from './types/devc';\nimport type { DomaSchema as _DomaSchema } from './types/doma';\nimport type { DtelSchema as _DtelSchema } from './types/dtel';\nimport type { IntfSchema as _IntfSchema } from './types/intf';\nimport type { ProgSchema as _ProgSchema } from './types/prog';\nimport type { FugrSchema as _FugrSchema } from './types/fugr';\nimport type { TablSchema as _TablSchema } from './types/tabl';\nimport type { TtypSchema as _TtypSchema } from './types/ttyp';\nimport type { BdefSchema as _BdefSchema } from './types/bdef';\nimport type { SrvdSchema as _SrvdSchema } from './types/srvd';\nimport type { SrvbSchema as _SrvbSchema } from './types/srvb';\nimport type { DclsSchema as _DclsSchema } from './types/dcls';\nimport type { DdlsSchema as _DdlsSchema } from './types/ddls';\nimport type { DdlxSchema as _DdlxSchema } from './types/ddlx';\nimport type { MsagSchema as _MsagSchema } from './types/msag';\nimport type { ViewSchema as _ViewSchema } from './types/view';\nimport type { EnquSchema as _EnquSchema } from './types/enqu';\nimport type { ShlpSchema as _ShlpSchema } from './types/shlp';\nimport type { TranSchema as _TranSchema } from './types/tran';\nimport type { TypeSchema as _TypeSchema } from './types/type';\nimport type { XsltSchema as _XsltSchema } from './types/xslt';\nimport type { EnhoSchema as _EnhoSchema } from './types/enho';\nimport type { EnhsSchema as _EnhsSchema } from './types/enhs';\nimport type { HttpSchema as _HttpSchema } from './types/http';\nimport type { NrobSchema as _NrobSchema } from './types/nrob';\nimport type { ChdoSchema as _ChdoSchema } from './types/chdo';\nimport type { SmtgSchema as _SmtgSchema } from './types/smtg';\nimport type { SfpfSchema as _SfpfSchema } from './types/sfpf';\nimport type { Scp1Schema as _Scp1Schema } from './types/scp1';\nimport type { SicfSchema as _SicfSchema } from './types/sicf';\nimport type { SrfcSchema as _SrfcSchema } from './types/srfc';\nimport type { IdocSchema as _IdocSchema } from './types/idoc';\nimport type { IobjSchema as _IobjSchema } from './types/iobj';\nimport type { OdsoSchema as _OdsoSchema } from './types/odso';\nimport type { ShmaSchema as _ShmaSchema } from './types/shma';\nimport type { StylSchema as _StylSchema } from './types/styl';\nimport type { SuscSchema as _SuscSchema } from './types/susc';\nimport type { SucuSchema as _SucuSchema } from './types/sucu';\nimport type { SxciSchema as _SxciSchema } from './types/sxci';\nimport type { SmimSchema as _SmimSchema } from './types/smim';\nimport type { SqscSchema as _SqscSchema } from './types/sqsc';\nimport type { SusoSchema as _SusoSchema } from './types/suso';\nimport type { SushSchema as _SushSchema } from './types/sush';\nimport type { SktdSchema as _SktdSchema } from './types/sktd';\nimport type { FormSchema as _FormSchema } from './types/form';\nimport type { TdlinesSchema as _TdlinesSchema } from './types/tdlines';\nimport type { XinxSchema as _XinxSchema } from './types/xinx';\nimport type { ParaSchema as _ParaSchema } from './types/para';\nimport type { PersSchema as _PersSchema } from './types/pers';\nimport type { Oa2pSchema as _Oa2pSchema } from './types/oa2p';\nimport type { SploSchema as _SploSchema } from './types/splo';\nimport type { TobjSchema as _TobjSchema } from './types/tobj';\nimport type { SprxSchema as _SprxSchema } from './types/sprx';\nimport type { SotsSchema as _SotsSchema } from './types/sots';\nimport type { IarpSchema as _IarpSchema } from './types/iarp';\nimport type { IaspSchema as _IaspSchema } from './types/iasp';\nimport type { CharSchema as _CharSchema } from './types/char';\nimport type { AuthSchema as _AuthSchema } from './types/auth';\nimport type { AreaSchema as _AreaSchema } from './types/area';\nimport type { AvarSchema as _AvarSchema } from './types/avar';\nimport type { JobdSchema as _JobdSchema } from './types/jobd';\nimport type { NspcSchema as _NspcSchema } from './types/nspc';\nimport type { PinfSchema as _PinfSchema } from './types/pinf';\nimport type { VclsSchema as _VclsSchema } from './types/vcls';\nimport type { StviSchema as _StviSchema } from './types/stvi';\nimport type { Sod1Schema as _Sod1Schema } from './types/sod1';\nimport type { Sod2Schema as _Sod2Schema } from './types/sod2';\nimport type { Shi3Schema as _Shi3Schema } from './types/shi3';\nimport type { Shi5Schema as _Shi5Schema } from './types/shi5';\nimport type { Shi8Schema as _Shi8Schema } from './types/shi8';\nimport type { ScviSchema as _ScviSchema } from './types/scvi';\nimport type { AcidSchema as _AcidSchema } from './types/acid';\nimport type { AvasSchema as _AvasSchema } from './types/avas';\nimport type { CmodSchema as _CmodSchema } from './types/cmod';\nimport type { DialSchema as _DialSchema } from './types/dial';\nimport type { EnhcSchema as _EnhcSchema } from './types/enhc';\nimport type { EnscSchema as _EnscSchema } from './types/ensc';\nimport type { OtgrSchema as _OtgrSchema } from './types/otgr';\nimport type { SfswSchema as _SfswSchema } from './types/sfsw';\nimport type { SsstSchema as _SsstSchema } from './types/ssst';\nimport type { SfbfSchema as _SfbfSchema } from './types/sfbf';\nimport type { SfbsSchema as _SfbsSchema } from './types/sfbs';\nimport type { SxsdSchema as _SxsdSchema } from './types/sxsd';\nimport type { UcsaSchema as _UcsaSchema } from './types/ucsa';\nimport type { UdmoSchema as _UdmoSchema } from './types/udmo';\nimport type { IaxuSchema as _IaxuSchema } from './types/iaxu';\nimport type { IextSchema as _IextSchema } from './types/iext';\nimport type { SamcSchema as _SamcSchema } from './types/samc';\nimport type { SapcSchema as _SapcSchema } from './types/sapc';\nimport type { DsysSchema as _DsysSchema } from './types/dsys';\nimport type { FtglSchema as _FtglSchema } from './types/ftgl';\nimport type { PragSchema as _PragSchema } from './types/prag';\nimport type { Cus0Schema as _Cus0Schema } from './types/cus0';\nimport type { Cus1Schema as _Cus1Schema } from './types/cus1';\nimport type { Cus2Schema as _Cus2Schema } from './types/cus2';\nimport type { DocvSchema as _DocvSchema } from './types/docv';\nimport type { DoctSchema as _DoctSchema } from './types/doct';\nimport type { CmptSchema as _CmptSchema } from './types/cmpt';\nimport type { AmsdSchema as _AmsdSchema } from './types/amsd';\nimport type { ApisSchema as _ApisSchema } from './types/apis';\nimport type { WdyaSchema as _WdyaSchema } from './types/wdya';\nimport type { WebiSchema as _WebiSchema } from './types/webi';\nimport type { WdcaSchema as _WdcaSchema } from './types/wdca';\nimport type { WdccSchema as _WdccSchema } from './types/wdcc';\nimport type { PdtsSchema as _PdtsSchema } from './types/pdts';\nimport type { W3htSchema as _W3htSchema } from './types/w3ht';\nimport type { W3miSchema as _W3miSchema } from './types/w3mi';\nimport type { IatuSchema as _IatuSchema } from './types/iatu';\nimport type { IamuSchema as _IamuSchema } from './types/iamu';\nimport type { DrulSchema as _DrulSchema } from './types/drul';\nimport type { AifcSchema as _AifcSchema } from './types/aifc';\nimport type { AqbgSchema as _AqbgSchema } from './types/aqbg';\nimport type { AqquSchema as _AqquSchema } from './types/aqqu';\nimport type { AqsgSchema as _AqsgSchema } from './types/aqsg';\nimport type { AsfcSchema as _AsfcSchema } from './types/asfc';\nimport type { G4baSchema as _G4baSchema } from './types/g4ba';\nimport type { G4bsSchema as _G4bsSchema } from './types/g4bs';\nimport type { IwmoSchema as _IwmoSchema } from './types/iwmo';\nimport type { IwomSchema as _IwomSchema } from './types/iwom';\nimport type { IwprSchema as _IwprSchema } from './types/iwpr';\nimport type { IwsgSchema as _IwsgSchema } from './types/iwsg';\nimport type { IwsvSchema as _IwsvSchema } from './types/iwsv';\nimport type { IwvbSchema as _IwvbSchema } from './types/iwvb';\nimport type { SlddSchema as _SlddSchema } from './types/sldd';\nimport type { SobjSchema as _SobjSchema } from './types/sobj';\nimport type { SppfSchema as _SppfSchema } from './types/sppf';\nimport type { UenoSchema as _UenoSchema } from './types/ueno';\nimport type { EcatSchema as _EcatSchema } from './types/ecat';\nimport type { EcsdSchema as _EcsdSchema } from './types/ecsd';\nimport type { EcspSchema as _EcspSchema } from './types/ecsp';\nimport type { EctcSchema as _EctcSchema } from './types/ectc';\nimport type { EctdSchema as _EctdSchema } from './types/ectd';\nimport type { EcvoSchema as _EcvoSchema } from './types/ecvo';\nimport type { Fdt0Schema as _Fdt0Schema } from './types/fdt0';\nimport type { SfpiSchema as _SfpiSchema } from './types/sfpi';\nimport type { SsfoSchema as _SsfoSchema } from './types/ssfo';\nimport type { WapaSchema as _WapaSchema } from './types/wapa';\nimport type { WdynSchema as _WdynSchema } from './types/wdyn';\n\n// Extract the abapGit variant from union types (generated types may be unions)\ntype ClasAbapGitType = Extract<_ClasSchema, { abapGit: unknown }>;\ntype DevcAbapGitType = Extract<_DevcSchema, { abapGit: unknown }>;\ntype DomaAbapGitType = Extract<_DomaSchema, { abapGit: unknown }>;\ntype DtelAbapGitType = Extract<_DtelSchema, { abapGit: unknown }>;\ntype IntfAbapGitType = Extract<_IntfSchema, { abapGit: unknown }>;\ntype ProgAbapGitType = Extract<_ProgSchema, { abapGit: unknown }>;\ntype FugrAbapGitType = Extract<_FugrSchema, { abapGit: unknown }>;\ntype TablAbapGitType = Extract<_TablSchema, { abapGit: unknown }>;\ntype TtypAbapGitType = Extract<_TtypSchema, { abapGit: unknown }>;\ntype BdefAbapGitType = Extract<_BdefSchema, { abapGit: unknown }>;\ntype SrvdAbapGitType = Extract<_SrvdSchema, { abapGit: unknown }>;\ntype SrvbAbapGitType = Extract<_SrvbSchema, { abapGit: unknown }>;\ntype DclsAbapGitType = Extract<_DclsSchema, { abapGit: unknown }>;\ntype DdlsAbapGitType = Extract<_DdlsSchema, { abapGit: unknown }>;\ntype DdlxAbapGitType = Extract<_DdlxSchema, { abapGit: unknown }>;\ntype MsagAbapGitType = Extract<_MsagSchema, { abapGit: unknown }>;\ntype ViewAbapGitType = Extract<_ViewSchema, { abapGit: unknown }>;\ntype EnquAbapGitType = Extract<_EnquSchema, { abapGit: unknown }>;\ntype ShlpAbapGitType = Extract<_ShlpSchema, { abapGit: unknown }>;\ntype TranAbapGitType = Extract<_TranSchema, { abapGit: unknown }>;\ntype TypeAbapGitType = Extract<_TypeSchema, { abapGit: unknown }>;\ntype XsltAbapGitType = Extract<_XsltSchema, { abapGit: unknown }>;\ntype EnhoAbapGitType = Extract<_EnhoSchema, { abapGit: unknown }>;\ntype EnhsAbapGitType = Extract<_EnhsSchema, { abapGit: unknown }>;\ntype HttpAbapGitType = Extract<_HttpSchema, { abapGit: unknown }>;\ntype NrobAbapGitType = Extract<_NrobSchema, { abapGit: unknown }>;\ntype ChdoAbapGitType = Extract<_ChdoSchema, { abapGit: unknown }>;\ntype SmtgAbapGitType = Extract<_SmtgSchema, { abapGit: unknown }>;\ntype SfpfAbapGitType = Extract<_SfpfSchema, { abapGit: unknown }>;\ntype Scp1AbapGitType = Extract<_Scp1Schema, { abapGit: unknown }>;\ntype SicfAbapGitType = Extract<_SicfSchema, { abapGit: unknown }>;\ntype SrfcAbapGitType = Extract<_SrfcSchema, { abapGit: unknown }>;\ntype IdocAbapGitType = Extract<_IdocSchema, { abapGit: unknown }>;\ntype IobjAbapGitType = Extract<_IobjSchema, { abapGit: unknown }>;\ntype OdsoAbapGitType = Extract<_OdsoSchema, { abapGit: unknown }>;\ntype ShmaAbapGitType = Extract<_ShmaSchema, { abapGit: unknown }>;\ntype StylAbapGitType = Extract<_StylSchema, { abapGit: unknown }>;\ntype SuscAbapGitType = Extract<_SuscSchema, { abapGit: unknown }>;\ntype SucuAbapGitType = Extract<_SucuSchema, { abapGit: unknown }>;\ntype SxciAbapGitType = Extract<_SxciSchema, { abapGit: unknown }>;\ntype SmimAbapGitType = Extract<_SmimSchema, { abapGit: unknown }>;\ntype SqscAbapGitType = Extract<_SqscSchema, { abapGit: unknown }>;\ntype SusoAbapGitType = Extract<_SusoSchema, { abapGit: unknown }>;\ntype SushAbapGitType = Extract<_SushSchema, { abapGit: unknown }>;\ntype SktdAbapGitType = Extract<_SktdSchema, { abapGit: unknown }>;\ntype FormAbapGitType = Extract<_FormSchema, { abapGit: unknown }>;\ntype TdlinesAbapGitType = Extract<_TdlinesSchema, { abapGit: unknown }>;\ntype XinxAbapGitType = Extract<_XinxSchema, { abapGit: unknown }>;\ntype ParaAbapGitType = Extract<_ParaSchema, { abapGit: unknown }>;\ntype PersAbapGitType = Extract<_PersSchema, { abapGit: unknown }>;\ntype Oa2pAbapGitType = Extract<_Oa2pSchema, { abapGit: unknown }>;\ntype SploAbapGitType = Extract<_SploSchema, { abapGit: unknown }>;\ntype TobjAbapGitType = Extract<_TobjSchema, { abapGit: unknown }>;\ntype SprxAbapGitType = Extract<_SprxSchema, { abapGit: unknown }>;\ntype SotsAbapGitType = Extract<_SotsSchema, { abapGit: unknown }>;\ntype IarpAbapGitType = Extract<_IarpSchema, { abapGit: unknown }>;\ntype IaspAbapGitType = Extract<_IaspSchema, { abapGit: unknown }>;\ntype CharAbapGitType = Extract<_CharSchema, { abapGit: unknown }>;\ntype AuthAbapGitType = Extract<_AuthSchema, { abapGit: unknown }>;\ntype AreaAbapGitType = Extract<_AreaSchema, { abapGit: unknown }>;\ntype AvarAbapGitType = Extract<_AvarSchema, { abapGit: unknown }>;\ntype JobdAbapGitType = Extract<_JobdSchema, { abapGit: unknown }>;\ntype NspcAbapGitType = Extract<_NspcSchema, { abapGit: unknown }>;\ntype PinfAbapGitType = Extract<_PinfSchema, { abapGit: unknown }>;\ntype VclsAbapGitType = Extract<_VclsSchema, { abapGit: unknown }>;\ntype StviAbapGitType = Extract<_StviSchema, { abapGit: unknown }>;\ntype Sod1AbapGitType = Extract<_Sod1Schema, { abapGit: unknown }>;\ntype Sod2AbapGitType = Extract<_Sod2Schema, { abapGit: unknown }>;\ntype Shi3AbapGitType = Extract<_Shi3Schema, { abapGit: unknown }>;\ntype Shi5AbapGitType = Extract<_Shi5Schema, { abapGit: unknown }>;\ntype Shi8AbapGitType = Extract<_Shi8Schema, { abapGit: unknown }>;\ntype ScviAbapGitType = Extract<_ScviSchema, { abapGit: unknown }>;\ntype AcidAbapGitType = Extract<_AcidSchema, { abapGit: unknown }>;\ntype AvasAbapGitType = Extract<_AvasSchema, { abapGit: unknown }>;\ntype CmodAbapGitType = Extract<_CmodSchema, { abapGit: unknown }>;\ntype DialAbapGitType = Extract<_DialSchema, { abapGit: unknown }>;\ntype EnhcAbapGitType = Extract<_EnhcSchema, { abapGit: unknown }>;\ntype EnscAbapGitType = Extract<_EnscSchema, { abapGit: unknown }>;\ntype OtgrAbapGitType = Extract<_OtgrSchema, { abapGit: unknown }>;\ntype SfswAbapGitType = Extract<_SfswSchema, { abapGit: unknown }>;\ntype SsstAbapGitType = Extract<_SsstSchema, { abapGit: unknown }>;\ntype SfbfAbapGitType = Extract<_SfbfSchema, { abapGit: unknown }>;\ntype SfbsAbapGitType = Extract<_SfbsSchema, { abapGit: unknown }>;\ntype SxsdAbapGitType = Extract<_SxsdSchema, { abapGit: unknown }>;\ntype UcsaAbapGitType = Extract<_UcsaSchema, { abapGit: unknown }>;\ntype UdmoAbapGitType = Extract<_UdmoSchema, { abapGit: unknown }>;\ntype IaxuAbapGitType = Extract<_IaxuSchema, { abapGit: unknown }>;\ntype IextAbapGitType = Extract<_IextSchema, { abapGit: unknown }>;\ntype SamcAbapGitType = Extract<_SamcSchema, { abapGit: unknown }>;\ntype SapcAbapGitType = Extract<_SapcSchema, { abapGit: unknown }>;\ntype DsysAbapGitType = Extract<_DsysSchema, { abapGit: unknown }>;\ntype FtglAbapGitType = Extract<_FtglSchema, { abapGit: unknown }>;\ntype PragAbapGitType = Extract<_PragSchema, { abapGit: unknown }>;\ntype Cus0AbapGitType = Extract<_Cus0Schema, { abapGit: unknown }>;\ntype Cus1AbapGitType = Extract<_Cus1Schema, { abapGit: unknown }>;\ntype Cus2AbapGitType = Extract<_Cus2Schema, { abapGit: unknown }>;\ntype DocvAbapGitType = Extract<_DocvSchema, { abapGit: unknown }>;\ntype DoctAbapGitType = Extract<_DoctSchema, { abapGit: unknown }>;\ntype CmptAbapGitType = Extract<_CmptSchema, { abapGit: unknown }>;\ntype AmsdAbapGitType = Extract<_AmsdSchema, { abapGit: unknown }>;\ntype ApisAbapGitType = Extract<_ApisSchema, { abapGit: unknown }>;\ntype WdyaAbapGitType = Extract<_WdyaSchema, { abapGit: unknown }>;\ntype WebiAbapGitType = Extract<_WebiSchema, { abapGit: unknown }>;\ntype WdcaAbapGitType = Extract<_WdcaSchema, { abapGit: unknown }>;\ntype WdccAbapGitType = Extract<_WdccSchema, { abapGit: unknown }>;\ntype PdtsAbapGitType = Extract<_PdtsSchema, { abapGit: unknown }>;\ntype W3htAbapGitType = Extract<_W3htSchema, { abapGit: unknown }>;\ntype W3miAbapGitType = Extract<_W3miSchema, { abapGit: unknown }>;\ntype IatuAbapGitType = Extract<_IatuSchema, { abapGit: unknown }>;\ntype IamuAbapGitType = Extract<_IamuSchema, { abapGit: unknown }>;\ntype DrulAbapGitType = Extract<_DrulSchema, { abapGit: unknown }>;\ntype AifcAbapGitType = Extract<_AifcSchema, { abapGit: unknown }>;\ntype AqbgAbapGitType = Extract<_AqbgSchema, { abapGit: unknown }>;\ntype AqquAbapGitType = Extract<_AqquSchema, { abapGit: unknown }>;\ntype AqsgAbapGitType = Extract<_AqsgSchema, { abapGit: unknown }>;\ntype AsfcAbapGitType = Extract<_AsfcSchema, { abapGit: unknown }>;\ntype G4baAbapGitType = Extract<_G4baSchema, { abapGit: unknown }>;\ntype G4bsAbapGitType = Extract<_G4bsSchema, { abapGit: unknown }>;\ntype IwmoAbapGitType = Extract<_IwmoSchema, { abapGit: unknown }>;\ntype IwomAbapGitType = Extract<_IwomSchema, { abapGit: unknown }>;\ntype IwprAbapGitType = Extract<_IwprSchema, { abapGit: unknown }>;\ntype IwsgAbapGitType = Extract<_IwsgSchema, { abapGit: unknown }>;\ntype IwsvAbapGitType = Extract<_IwsvSchema, { abapGit: unknown }>;\ntype IwvbAbapGitType = Extract<_IwvbSchema, { abapGit: unknown }>;\ntype SlddAbapGitType = Extract<_SlddSchema, { abapGit: unknown }>;\ntype SobjAbapGitType = Extract<_SobjSchema, { abapGit: unknown }>;\ntype SppfAbapGitType = Extract<_SppfSchema, { abapGit: unknown }>;\ntype UenoAbapGitType = Extract<_UenoSchema, { abapGit: unknown }>;\ntype EcatAbapGitType = Extract<_EcatSchema, { abapGit: unknown }>;\ntype EcsdAbapGitType = Extract<_EcsdSchema, { abapGit: unknown }>;\ntype EcspAbapGitType = Extract<_EcspSchema, { abapGit: unknown }>;\ntype EctcAbapGitType = Extract<_EctcSchema, { abapGit: unknown }>;\ntype EctdAbapGitType = Extract<_EctdSchema, { abapGit: unknown }>;\ntype EcvoAbapGitType = Extract<_EcvoSchema, { abapGit: unknown }>;\ntype Fdt0AbapGitType = Extract<_Fdt0Schema, { abapGit: unknown }>;\ntype SfpiAbapGitType = Extract<_SfpiSchema, { abapGit: unknown }>;\ntype SsfoAbapGitType = Extract<_SsfoSchema, { abapGit: unknown }>;\ntype WapaAbapGitType = Extract<_WapaSchema, { abapGit: unknown }>;\ntype WdynAbapGitType = Extract<_WdynSchema, { abapGit: unknown }>;\n\n// AbapGit schema instances - using flattened types with values extracted from abapGit.abap.values\nexport const clas = abapGitSchema<ClasAbapGitType, ClasAbapGitType['abapGit']['abap']['values']>(_clas);\nexport const devc = abapGitSchema<DevcAbapGitType, DevcAbapGitType['abapGit']['abap']['values']>(_devc);\nexport const doma = abapGitSchema<DomaAbapGitType, DomaAbapGitType['abapGit']['abap']['values']>(_doma);\nexport const dtel = abapGitSchema<DtelAbapGitType, DtelAbapGitType['abapGit']['abap']['values']>(_dtel);\nexport const intf = abapGitSchema<IntfAbapGitType, IntfAbapGitType['abapGit']['abap']['values']>(_intf);\nexport const prog = abapGitSchema<ProgAbapGitType, ProgAbapGitType['abapGit']['abap']['values']>(_prog);\nexport const fugr = abapGitSchema<FugrAbapGitType, FugrAbapGitType['abapGit']['abap']['values']>(_fugr);\nexport const tabl = abapGitSchema<TablAbapGitType, TablAbapGitType['abapGit']['abap']['values']>(_tabl);\nexport const ttyp = abapGitSchema<TtypAbapGitType, TtypAbapGitType['abapGit']['abap']['values']>(_ttyp);\nexport const bdef = abapGitSchema<BdefAbapGitType, BdefAbapGitType['abapGit']['abap']['values']>(_bdef);\nexport const srvd = abapGitSchema<SrvdAbapGitType, SrvdAbapGitType['abapGit']['abap']['values']>(_srvd);\nexport const srvb = abapGitSchema<SrvbAbapGitType, SrvbAbapGitType['abapGit']['abap']['values']>(_srvb);\nexport const dcls = abapGitSchema<DclsAbapGitType, DclsAbapGitType['abapGit']['abap']['values']>(_dcls);\nexport const ddls = abapGitSchema<DdlsAbapGitType, DdlsAbapGitType['abapGit']['abap']['values']>(_ddls);\nexport const ddlx = abapGitSchema<DdlxAbapGitType, DdlxAbapGitType['abapGit']['abap']['values']>(_ddlx);\nexport const msag = abapGitSchema<MsagAbapGitType, MsagAbapGitType['abapGit']['abap']['values']>(_msag);\nexport const view = abapGitSchema<ViewAbapGitType, ViewAbapGitType['abapGit']['abap']['values']>(_view);\nexport const enqu = abapGitSchema<EnquAbapGitType, EnquAbapGitType['abapGit']['abap']['values']>(_enqu);\nexport const shlp = abapGitSchema<ShlpAbapGitType, ShlpAbapGitType['abapGit']['abap']['values']>(_shlp);\nexport const tran = abapGitSchema<TranAbapGitType, TranAbapGitType['abapGit']['abap']['values']>(_tran);\nexport const type = abapGitSchema<TypeAbapGitType, TypeAbapGitType['abapGit']['abap']['values']>(_type);\nexport const xslt = abapGitSchema<XsltAbapGitType, XsltAbapGitType['abapGit']['abap']['values']>(_xslt);\nexport const enho = abapGitSchema<EnhoAbapGitType, EnhoAbapGitType['abapGit']['abap']['values']>(_enho);\nexport const enhs = abapGitSchema<EnhsAbapGitType, EnhsAbapGitType['abapGit']['abap']['values']>(_enhs);\nexport const http = abapGitSchema<HttpAbapGitType, HttpAbapGitType['abapGit']['abap']['values']>(_http);\nexport const nrob = abapGitSchema<NrobAbapGitType, NrobAbapGitType['abapGit']['abap']['values']>(_nrob);\nexport const chdo = abapGitSchema<ChdoAbapGitType, ChdoAbapGitType['abapGit']['abap']['values']>(_chdo);\nexport const smtg = abapGitSchema<SmtgAbapGitType, SmtgAbapGitType['abapGit']['abap']['values']>(_smtg);\nexport const sfpf = abapGitSchema<SfpfAbapGitType, SfpfAbapGitType['abapGit']['abap']['values']>(_sfpf);\nexport const scp1 = abapGitSchema<Scp1AbapGitType, Scp1AbapGitType['abapGit']['abap']['values']>(_scp1);\nexport const sicf = abapGitSchema<SicfAbapGitType, SicfAbapGitType['abapGit']['abap']['values']>(_sicf);\nexport const srfc = abapGitSchema<SrfcAbapGitType, SrfcAbapGitType['abapGit']['abap']['values']>(_srfc);\nexport const idoc = abapGitSchema<IdocAbapGitType, IdocAbapGitType['abapGit']['abap']['values']>(_idoc);\nexport const iobj = abapGitSchema<IobjAbapGitType, IobjAbapGitType['abapGit']['abap']['values']>(_iobj);\nexport const odso = abapGitSchema<OdsoAbapGitType, OdsoAbapGitType['abapGit']['abap']['values']>(_odso);\nexport const shma = abapGitSchema<ShmaAbapGitType, ShmaAbapGitType['abapGit']['abap']['values']>(_shma);\nexport const styl = abapGitSchema<StylAbapGitType, StylAbapGitType['abapGit']['abap']['values']>(_styl);\nexport const susc = abapGitSchema<SuscAbapGitType, SuscAbapGitType['abapGit']['abap']['values']>(_susc);\nexport const sucu = abapGitSchema<SucuAbapGitType, SucuAbapGitType['abapGit']['abap']['values']>(_sucu);\nexport const sxci = abapGitSchema<SxciAbapGitType, SxciAbapGitType['abapGit']['abap']['values']>(_sxci);\nexport const smim = abapGitSchema<SmimAbapGitType, SmimAbapGitType['abapGit']['abap']['values']>(_smim);\nexport const sqsc = abapGitSchema<SqscAbapGitType, SqscAbapGitType['abapGit']['abap']['values']>(_sqsc);\nexport const suso = abapGitSchema<SusoAbapGitType, SusoAbapGitType['abapGit']['abap']['values']>(_suso);\nexport const sush = abapGitSchema<SushAbapGitType, SushAbapGitType['abapGit']['abap']['values']>(_sush);\nexport const sktd = abapGitSchema<SktdAbapGitType, SktdAbapGitType['abapGit']['abap']['values']>(_sktd);\nexport const form = abapGitSchema<FormAbapGitType, FormAbapGitType['abapGit']['abap']['values']>(_form);\nexport const tdlines = abapGitSchema<TdlinesAbapGitType, TdlinesAbapGitType['abapGit']['abap']['values']>(_tdlines);\nexport const xinx = abapGitSchema<XinxAbapGitType, XinxAbapGitType['abapGit']['abap']['values']>(_xinx);\nexport const para = abapGitSchema<ParaAbapGitType, ParaAbapGitType['abapGit']['abap']['values']>(_para);\nexport const pers = abapGitSchema<PersAbapGitType, PersAbapGitType['abapGit']['abap']['values']>(_pers);\nexport const oa2p = abapGitSchema<Oa2pAbapGitType, Oa2pAbapGitType['abapGit']['abap']['values']>(_oa2p);\nexport const splo = abapGitSchema<SploAbapGitType, SploAbapGitType['abapGit']['abap']['values']>(_splo);\nexport const tobj = abapGitSchema<TobjAbapGitType, TobjAbapGitType['abapGit']['abap']['values']>(_tobj);\nexport const sprx = abapGitSchema<SprxAbapGitType, SprxAbapGitType['abapGit']['abap']['values']>(_sprx);\nexport const sots = abapGitSchema<SotsAbapGitType, SotsAbapGitType['abapGit']['abap']['values']>(_sots);\nexport const iarp = abapGitSchema<IarpAbapGitType, IarpAbapGitType['abapGit']['abap']['values']>(_iarp);\nexport const iasp = abapGitSchema<IaspAbapGitType, IaspAbapGitType['abapGit']['abap']['values']>(_iasp);\nexport const char = abapGitSchema<CharAbapGitType, CharAbapGitType['abapGit']['abap']['values']>(_char);\nexport const auth = abapGitSchema<AuthAbapGitType, AuthAbapGitType['abapGit']['abap']['values']>(_auth);\nexport const area = abapGitSchema<AreaAbapGitType, AreaAbapGitType['abapGit']['abap']['values']>(_area);\nexport const avar = abapGitSchema<AvarAbapGitType, AvarAbapGitType['abapGit']['abap']['values']>(_avar);\nexport const jobd = abapGitSchema<JobdAbapGitType, JobdAbapGitType['abapGit']['abap']['values']>(_jobd);\nexport const nspc = abapGitSchema<NspcAbapGitType, NspcAbapGitType['abapGit']['abap']['values']>(_nspc);\nexport const pinf = abapGitSchema<PinfAbapGitType, PinfAbapGitType['abapGit']['abap']['values']>(_pinf);\nexport const vcls = abapGitSchema<VclsAbapGitType, VclsAbapGitType['abapGit']['abap']['values']>(_vcls);\nexport const stvi = abapGitSchema<StviAbapGitType, StviAbapGitType['abapGit']['abap']['values']>(_stvi);\nexport const sod1 = abapGitSchema<Sod1AbapGitType, Sod1AbapGitType['abapGit']['abap']['values']>(_sod1);\nexport const sod2 = abapGitSchema<Sod2AbapGitType, Sod2AbapGitType['abapGit']['abap']['values']>(_sod2);\nexport const shi3 = abapGitSchema<Shi3AbapGitType, Shi3AbapGitType['abapGit']['abap']['values']>(_shi3);\nexport const shi5 = abapGitSchema<Shi5AbapGitType, Shi5AbapGitType['abapGit']['abap']['values']>(_shi5);\nexport const shi8 = abapGitSchema<Shi8AbapGitType, Shi8AbapGitType['abapGit']['abap']['values']>(_shi8);\nexport const scvi = abapGitSchema<ScviAbapGitType, ScviAbapGitType['abapGit']['abap']['values']>(_scvi);\nexport const acid = abapGitSchema<AcidAbapGitType, AcidAbapGitType['abapGit']['abap']['values']>(_acid);\nexport const avas = abapGitSchema<AvasAbapGitType, AvasAbapGitType['abapGit']['abap']['values']>(_avas);\nexport const cmod = abapGitSchema<CmodAbapGitType, CmodAbapGitType['abapGit']['abap']['values']>(_cmod);\nexport const dial = abapGitSchema<DialAbapGitType, DialAbapGitType['abapGit']['abap']['values']>(_dial);\nexport const enhc = abapGitSchema<EnhcAbapGitType, EnhcAbapGitType['abapGit']['abap']['values']>(_enhc);\nexport const ensc = abapGitSchema<EnscAbapGitType, EnscAbapGitType['abapGit']['abap']['values']>(_ensc);\nexport const otgr = abapGitSchema<OtgrAbapGitType, OtgrAbapGitType['abapGit']['abap']['values']>(_otgr);\nexport const sfsw = abapGitSchema<SfswAbapGitType, SfswAbapGitType['abapGit']['abap']['values']>(_sfsw);\nexport const ssst = abapGitSchema<SsstAbapGitType, SsstAbapGitType['abapGit']['abap']['values']>(_ssst);\nexport const sfbf = abapGitSchema<SfbfAbapGitType, SfbfAbapGitType['abapGit']['abap']['values']>(_sfbf);\nexport const sfbs = abapGitSchema<SfbsAbapGitType, SfbsAbapGitType['abapGit']['abap']['values']>(_sfbs);\nexport const sxsd = abapGitSchema<SxsdAbapGitType, SxsdAbapGitType['abapGit']['abap']['values']>(_sxsd);\nexport const ucsa = abapGitSchema<UcsaAbapGitType, UcsaAbapGitType['abapGit']['abap']['values']>(_ucsa);\nexport const udmo = abapGitSchema<UdmoAbapGitType, UdmoAbapGitType['abapGit']['abap']['values']>(_udmo);\nexport const iaxu = abapGitSchema<IaxuAbapGitType, IaxuAbapGitType['abapGit']['abap']['values']>(_iaxu);\nexport const iext = abapGitSchema<IextAbapGitType, IextAbapGitType['abapGit']['abap']['values']>(_iext);\nexport const samc = abapGitSchema<SamcAbapGitType, SamcAbapGitType['abapGit']['abap']['values']>(_samc);\nexport const sapc = abapGitSchema<SapcAbapGitType, SapcAbapGitType['abapGit']['abap']['values']>(_sapc);\nexport const dsys = abapGitSchema<DsysAbapGitType, DsysAbapGitType['abapGit']['abap']['values']>(_dsys);\nexport const ftgl = abapGitSchema<FtglAbapGitType, FtglAbapGitType['abapGit']['abap']['values']>(_ftgl);\nexport const prag = abapGitSchema<PragAbapGitType, PragAbapGitType['abapGit']['abap']['values']>(_prag);\nexport const cus0 = abapGitSchema<Cus0AbapGitType, Cus0AbapGitType['abapGit']['abap']['values']>(_cus0);\nexport const cus1 = abapGitSchema<Cus1AbapGitType, Cus1AbapGitType['abapGit']['abap']['values']>(_cus1);\nexport const cus2 = abapGitSchema<Cus2AbapGitType, Cus2AbapGitType['abapGit']['abap']['values']>(_cus2);\nexport const docv = abapGitSchema<DocvAbapGitType, DocvAbapGitType['abapGit']['abap']['values']>(_docv);\nexport const doct = abapGitSchema<DoctAbapGitType, DoctAbapGitType['abapGit']['abap']['values']>(_doct);\nexport const cmpt = abapGitSchema<CmptAbapGitType, CmptAbapGitType['abapGit']['abap']['values']>(_cmpt);\nexport const amsd = abapGitSchema<AmsdAbapGitType, AmsdAbapGitType['abapGit']['abap']['values']>(_amsd);\nexport const apis = abapGitSchema<ApisAbapGitType, ApisAbapGitType['abapGit']['abap']['values']>(_apis);\nexport const wdya = abapGitSchema<WdyaAbapGitType, WdyaAbapGitType['abapGit']['abap']['values']>(_wdya);\nexport const webi = abapGitSchema<WebiAbapGitType, WebiAbapGitType['abapGit']['abap']['values']>(_webi);\nexport const wdca = abapGitSchema<WdcaAbapGitType, WdcaAbapGitType['abapGit']['abap']['values']>(_wdca);\nexport const wdcc = abapGitSchema<WdccAbapGitType, WdccAbapGitType['abapGit']['abap']['values']>(_wdcc);\nexport const pdts = abapGitSchema<PdtsAbapGitType, PdtsAbapGitType['abapGit']['abap']['values']>(_pdts);\nexport const w3ht = abapGitSchema<W3htAbapGitType, W3htAbapGitType['abapGit']['abap']['values']>(_w3ht);\nexport const w3mi = abapGitSchema<W3miAbapGitType, W3miAbapGitType['abapGit']['abap']['values']>(_w3mi);\nexport const iatu = abapGitSchema<IatuAbapGitType, IatuAbapGitType['abapGit']['abap']['values']>(_iatu);\nexport const iamu = abapGitSchema<IamuAbapGitType, IamuAbapGitType['abapGit']['abap']['values']>(_iamu);\nexport const drul = abapGitSchema<DrulAbapGitType, DrulAbapGitType['abapGit']['abap']['values']>(_drul);\nexport const aifc = abapGitSchema<AifcAbapGitType, AifcAbapGitType['abapGit']['abap']['values']>(_aifc);\nexport const aqbg = abapGitSchema<AqbgAbapGitType, AqbgAbapGitType['abapGit']['abap']['values']>(_aqbg);\nexport const aqqu = abapGitSchema<AqquAbapGitType, AqquAbapGitType['abapGit']['abap']['values']>(_aqqu);\nexport const aqsg = abapGitSchema<AqsgAbapGitType, AqsgAbapGitType['abapGit']['abap']['values']>(_aqsg);\nexport const asfc = abapGitSchema<AsfcAbapGitType, AsfcAbapGitType['abapGit']['abap']['values']>(_asfc);\nexport const g4ba = abapGitSchema<G4baAbapGitType, G4baAbapGitType['abapGit']['abap']['values']>(_g4ba);\nexport const g4bs = abapGitSchema<G4bsAbapGitType, G4bsAbapGitType['abapGit']['abap']['values']>(_g4bs);\nexport const iwmo = abapGitSchema<IwmoAbapGitType, IwmoAbapGitType['abapGit']['abap']['values']>(_iwmo);\nexport const iwom = abapGitSchema<IwomAbapGitType, IwomAbapGitType['abapGit']['abap']['values']>(_iwom);\nexport const iwpr = abapGitSchema<IwprAbapGitType, IwprAbapGitType['abapGit']['abap']['values']>(_iwpr);\nexport const iwsg = abapGitSchema<IwsgAbapGitType, IwsgAbapGitType['abapGit']['abap']['values']>(_iwsg);\nexport const iwsv = abapGitSchema<IwsvAbapGitType, IwsvAbapGitType['abapGit']['abap']['values']>(_iwsv);\nexport const iwvb = abapGitSchema<IwvbAbapGitType, IwvbAbapGitType['abapGit']['abap']['values']>(_iwvb);\nexport const sldd = abapGitSchema<SlddAbapGitType, SlddAbapGitType['abapGit']['abap']['values']>(_sldd);\nexport const sobj = abapGitSchema<SobjAbapGitType, SobjAbapGitType['abapGit']['abap']['values']>(_sobj);\nexport const sppf = abapGitSchema<SppfAbapGitType, SppfAbapGitType['abapGit']['abap']['values']>(_sppf);\nexport const ueno = abapGitSchema<UenoAbapGitType, UenoAbapGitType['abapGit']['abap']['values']>(_ueno);\nexport const ecat = abapGitSchema<EcatAbapGitType, Record<string, unknown>>(_ecat);\nexport const ecsd = abapGitSchema<EcsdAbapGitType, Record<string, unknown>>(_ecsd);\nexport const ecsp = abapGitSchema<EcspAbapGitType, Record<string, unknown>>(_ecsp);\nexport const ectc = abapGitSchema<EctcAbapGitType, Record<string, unknown>>(_ectc);\nexport const ectd = abapGitSchema<EctdAbapGitType, Record<string, unknown>>(_ectd);\nexport const ecvo = abapGitSchema<EcvoAbapGitType, Record<string, unknown>>(_ecvo);\nexport const fdt0 = abapGitSchema<Fdt0AbapGitType, Record<string, unknown>>(_fdt0);\nexport const sfpi = abapGitSchema<SfpiAbapGitType, Record<string, unknown>>(_sfpi);\nexport const ssfo = abapGitSchema<SsfoAbapGitType, Record<string, unknown>>(_ssfo);\nexport const wapa = abapGitSchema<WapaAbapGitType, WapaAbapGitType['abapGit']['abap']['values']>(_wapa);\nexport const wdyn = abapGitSchema<WdynAbapGitType, WdynAbapGitType['abapGit']['abap']['values']>(_wdyn);\n\n// Re-export types and utilities\nexport { abapGitSchema, type AbapGitSchema, type InferAbapGitType, type InferValuesType } from '../../lib/handlers/abapgit-schema';\n","/**\n * SAP 1-character language code ↔ ISO 639-1 mapping\n *\n * abapGit stores SAP internal 1-char codes (e.g. \"E\" for English).\n * SAP ADT REST API expects ISO 639-1 codes (e.g. \"EN\").\n */\n\nconst SAP_TO_ISO: Record<string, string> = {\n E: 'EN', // English\n D: 'DE', // German\n F: 'FR', // French\n I: 'IT', // Italian\n S: 'ES', // Spanish\n P: 'PT', // Portuguese\n J: 'JA', // Japanese\n K: 'KO', // Korean\n '1': 'ZH', // Chinese\n W: 'RU', // Russian\n T: 'TR', // Turkish\n N: 'NL', // Dutch\n H: 'HU', // Hungarian\n L: 'PL', // Polish\n Q: 'CS', // Czech\n R: 'SK', // Slovak\n U: 'SV', // Swedish\n V: 'DA', // Danish\n Y: 'FI', // Finnish\n X: 'NO', // Norwegian\n G: 'EL', // Greek\n B: 'HE', // Hebrew\n A: 'AR', // Arabic\n '3': 'TH', // Thai\n M: 'UK', // Ukrainian\n '6': 'HR', // Croatian\n O: 'SL', // Slovenian\n '7': 'BG', // Bulgarian\n '8': 'SR', // Serbian\n C: 'RO', // Romanian\n};\n\nconst ISO_TO_SAP: Record<string, string> = Object.fromEntries(\n Object.entries(SAP_TO_ISO).map(([k, v]) => [v, k]),\n);\n\n/**\n * Convert SAP 1-char language code to ISO 639-1.\n * Returns the input uppercased if no mapping exists (may already be ISO).\n */\nexport function sapLangToIso(sapLang: string | undefined): string {\n if (!sapLang) return 'EN';\n const upper = sapLang.toUpperCase();\n // If it's already 2 chars, assume ISO\n if (upper.length >= 2) return upper;\n return SAP_TO_ISO[upper] ?? upper;\n}\n\n/**\n * Convert ISO 639-1 language code to SAP 1-char code.\n * Returns \"E\" (English) if no mapping exists.\n */\nexport function isoToSapLang(isoLang: string | undefined): string {\n if (!isoLang) return 'E';\n const upper = isoLang.toUpperCase();\n // If it's already 1 char, assume SAP code\n if (upper.length === 1) return upper;\n return ISO_TO_SAP[upper] ?? 'E';\n}\n\n// ============================================\n// ABAP Language Version mapping\n// ============================================\n\n/**\n * abapGit numeric code → ADT API string value\n *\n * abapGit serializes ABAP_LANGUAGE_VERSION as a numeric string (e.g. \"5\").\n * SAP ADT REST API expects descriptive strings (e.g. \"cloudDevelopment\").\n */\nconst ABAP_LANG_VER_TO_ADT: Record<string, string> = {\n '2': 'keyUser',\n '5': 'cloudDevelopment',\n};\nconst ABAP_LANG_VER_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(ABAP_LANG_VER_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * Convert abapGit ABAP_LANGUAGE_VERSION code to ADT API value.\n * Returns undefined if not set or standard ABAP.\n * Passes through values that are already in ADT format (e.g. \"cloudDevelopment\").\n */\nexport function abapLangVerToAdt(\n abapGitCode: string | undefined,\n): string | undefined {\n if (!abapGitCode) return undefined;\n return ABAP_LANG_VER_TO_ADT[abapGitCode] ?? abapGitCode;\n}\n\n/**\n * Convert ADT API abapLanguageVersion to abapGit ABAP_LANGUAGE_VERSION code.\n * Returns undefined if not set or standard ABAP (default — should not be emitted).\n */\nexport function abapLangVerFromAdt(\n adtValue: string | undefined,\n): string | undefined {\n if (!adtValue) return undefined;\n // Standard ABAP is the default — omit from abapGit XML\n if (adtValue === 'standard' || adtValue === 'X') return undefined;\n return ABAP_LANG_VER_FROM_ADT[adtValue] ?? adtValue;\n}\n","/**\n * Class (CLAS) object handler for abapGit format\n */\n\nimport { AdkClass, type ClassIncludeType } from '../adk';\nimport { clas } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport {\n sapLangToIso,\n isoToSapLang,\n abapLangVerToAdt,\n abapLangVerFromAdt,\n} from '../lang';\n\n/**\n * Map ADK ClassIncludeType to abapGit file suffix convention\n * Used for serialization (SAP → Git)\n */\nexport const ABAPGIT_SUFFIX: Record<ClassIncludeType, string | undefined> = {\n main: undefined, // main has no suffix\n definitions: 'locals_def',\n implementations: 'locals_imp',\n localtypes: 'locals_types',\n macros: 'macros',\n testclasses: 'testclasses',\n};\n\n/**\n * Reverse mapping: abapGit file suffix to ADK source key\n * Derived from ABAPGIT_SUFFIX to avoid duplication\n */\nconst SUFFIX_TO_SOURCE_KEY = Object.fromEntries(\n Object.entries(ABAPGIT_SUFFIX)\n .filter(([, suffix]) => suffix !== undefined)\n .map(([key, suffix]) => [suffix, key]),\n) as Record<string, ClassIncludeType>;\n\n/**\n * Map ADT category enum → abapGit numeric code\n * SAP ADT returns string names, abapGit uses numeric codes from SEOCLASSDF-CATEGORY\n */\nconst CATEGORY_FROM_ADT: Record<string, string> = {\n generalObjectType: '00',\n exitClass: '01',\n testClass: '02',\n areaClass: '03',\n factoryClass: '04',\n persistentClass: '30',\n exceptionClass: '40',\n bspClass: '60',\n staticTypedLcpClass: '70',\n behaviorPool: '80',\n rfcProxyClass: '90',\n entityEventHandler: '100',\n communicationConnectionClass: '110',\n};\n\n/**\n * Map visibility to EXPOSURE code (ADK → abapGit)\n */\nconst VISIBILITY_TO_EXPOSURE: Record<string, string> = {\n private: '0',\n protected: '1',\n public: '2',\n};\n\n/**\n * Reverse mapping: EXPOSURE code to visibility (abapGit → ADK)\n */\nconst EXPOSURE_TO_VISIBILITY = Object.fromEntries(\n Object.entries(VISIBILITY_TO_EXPOSURE).map(([k, v]) => [v, k]),\n) as Record<string, 'private' | 'protected' | 'public'>;\n\nexport const classHandler = createHandler(AdkClass, {\n schema: clas,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CLAS',\n serializer_version: 'v1.0.0',\n\n // Reverse mapping for deserialization (Git → SAP)\n suffixToSourceKey: SUFFIX_TO_SOURCE_KEY,\n\n toAbapGit: (cls) => {\n const data = cls.dataSync;\n const includes = data.include ?? [];\n const hasTestClasses =\n includes.some((inc) => String(inc.includeType) === 'testclasses') ||\n (data as any).hasTests === true ||\n (data as any).withUnitTests === true;\n\n // Map ADT category enum to abapGit numeric code, omit default (00)\n const categoryCode =\n CATEGORY_FROM_ADT[data.category ?? ''] ?? data.category ?? '00';\n\n // Map visibility to EXPOSURE code, omit default (2 = public)\n const exposureCode =\n VISIBILITY_TO_EXPOSURE[data.visibility ?? 'public'] ?? '2';\n\n return {\n VSEOCLASS: {\n // Required\n CLSNAME: cls.name ?? '',\n\n // Basic metadata\n LANGU: isoToSapLang(data.language),\n DESCRIPT: data.description ?? '',\n STATE: '1', // Active\n\n // Class attributes — omit defaults (abapGit convention)\n CATEGORY: categoryCode !== '00' ? categoryCode : undefined,\n EXPOSURE: exposureCode !== '2' ? exposureCode : undefined,\n CLSFINAL: data.final ? 'X' : undefined,\n CLSABSTRCT: data.abstract ? 'X' : undefined,\n SHRM_ENABLED: data.sharedMemoryEnabled ? 'X' : undefined,\n\n // Source attributes\n CLSCCINCL: 'X', // Class constructor include\n FIXPT: data.fixPointArithmetic ? 'X' : undefined,\n UNICODE: 'X', // Always true on modern SAP systems\n\n // References\n REFCLSNAME: data.superClassRef?.name,\n MSG_ID: data.messageClassRef?.name,\n\n // ABAP language version\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(data.abapLanguageVersion),\n\n // Test classes flag\n ...(hasTestClasses ? { WITH_UNIT_TESTS: 'X' } : {}),\n },\n };\n },\n\n getSources: (cls) => {\n const includes = cls.dataSync.include ?? [];\n return includes.map((inc) => ({\n suffix:\n ABAPGIT_SUFFIX[String(inc.includeType ?? 'main') as ClassIncludeType],\n content: cls.getIncludeSource(\n String(inc.includeType ?? 'main') as ClassIncludeType,\n ),\n }));\n },\n\n // Git → SAP: Map abapGit values to ADK data (type inferred from AdkClass)\n fromAbapGit: ({ VSEOCLASS }) => ({\n // Required - uppercase for SAP\n name: (VSEOCLASS?.CLSNAME ?? '').toUpperCase(),\n type: 'CLAS/OC', // ADT object type\n\n // Basic metadata\n description: VSEOCLASS?.DESCRIPT,\n language: sapLangToIso(VSEOCLASS?.LANGU),\n masterLanguage: sapLangToIso(VSEOCLASS?.LANGU),\n\n // Class attributes\n category: VSEOCLASS?.CATEGORY,\n final: VSEOCLASS?.CLSFINAL === 'X',\n abstract: VSEOCLASS?.CLSABSTRCT === 'X',\n visibility: EXPOSURE_TO_VISIBILITY[VSEOCLASS?.EXPOSURE ?? '2'] ?? 'public',\n sharedMemoryEnabled: VSEOCLASS?.SHRM_ENABLED === 'X',\n\n // Source attributes\n fixPointArithmetic: VSEOCLASS?.FIXPT === 'X',\n activeUnicodeCheck: VSEOCLASS?.UNICODE === 'X',\n\n // Test classes flag (preserved for roundtrip when includes are not available)\n withUnitTests: VSEOCLASS?.WITH_UNIT_TESTS === 'X',\n\n // References (name only - URI resolved by ADK)\n superClassRef: VSEOCLASS?.REFCLSNAME\n ? { name: VSEOCLASS.REFCLSNAME }\n : undefined,\n messageClassRef: VSEOCLASS?.MSG_ID ? { name: VSEOCLASS.MSG_ID } : undefined,\n\n // ABAP language version\n abapLanguageVersion: abapLangVerToAdt(VSEOCLASS?.ABAP_LANGUAGE_VERSION),\n }),\n\n // Git → SAP: Set source files on ADK object (symmetric with getSources)\n // Stores sources as pending for later deploy via ADT\n setSources: (cls, sources) => {\n // Store all sources as pending (will be saved during deploy)\n (\n cls as unknown as { _pendingSources: Record<string, string> }\n )._pendingSources = sources;\n // Also set main source shortcut for simple access\n if (sources.main) {\n (cls as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * Interface (INTF) object handler for abapGit format\n */\n\nimport { AdkInterface } from '../adk';\nimport { intf } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { sapLangToIso, isoToSapLang, abapLangVerToAdt } from '../lang';\n\nexport const interfaceHandler = createHandler(AdkInterface, {\n schema: intf,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_INTF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n VSEOINTERF: {\n CLSNAME: obj.name ?? '',\n LANGU: isoToSapLang(obj.dataSync?.language),\n DESCRIPT: obj.description ?? '',\n EXPOSURE: '2', // 2 = Public\n STATE: '1', // 1 = Active\n UNICODE: 'X',\n },\n }),\n\n getSource: (obj) => obj.getSource(),\n\n // Git → SAP: Map abapGit values to ADK data (type inferred from AdkInterface)\n fromAbapGit: ({ VSEOINTERF }) => ({\n name: (VSEOINTERF?.CLSNAME ?? '').toUpperCase(),\n type: 'INTF/OI', // ADT object type\n description: VSEOINTERF?.DESCRIPT,\n language: sapLangToIso(VSEOINTERF?.LANGU),\n masterLanguage: sapLangToIso(VSEOINTERF?.LANGU),\n abapLanguageVersion: abapLangVerToAdt(VSEOINTERF?.ABAP_LANGUAGE_VERSION),\n }),\n\n // Git → SAP: Set source files on ADK object (symmetric with getSource)\n // Stores sources as pending for later deploy via ADT\n setSources: (intf, sources) => {\n if (sources.main) {\n (intf as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * Package (DEVC) object handler for abapGit format\n */\n\nimport { AdkPackage } from '../adk';\nimport { devc } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\n/**\n * Package handler for abapGit serialization\n *\n * Note: Packages in abapGit use \"package.devc.xml\" as filename,\n * not \"$packagename.devc.xml\"\n */\nexport const packageHandler = createHandler(AdkPackage, {\n schema: devc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DEVC',\n serializer_version: 'v1.0.0',\n\n // Packages use fixed filename, not object name\n xmlFileName: 'package.devc.xml',\n\n // Only return the values - base class wraps in full AbapGitType\n toAbapGit: (pkg) => ({\n DEVC: {\n // Note: DEVCLASS is not included in abapGit package.devc.xml files (only CTEXT)\n CTEXT: pkg.description ?? '',\n },\n }),\n\n // Git → SAP: Map abapGit values to ADK data (type inferred from AdkPackage)\n // Note: DEVC doesn't have DEVCLASS in abapGit XML, name comes from filename\n fromAbapGit: ({ DEVC }) => ({\n name: '', // Package name must be set by deserializer from filename\n description: DEVC?.CTEXT,\n }),\n // Note: DEVC has no source files, so no setSources needed\n});\n","/**\n * Program (PROG) object handler for abapGit format\n */\n\nimport { AdkProgram } from '../adk';\nimport { prog } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\nexport const programHandler = createHandler(AdkProgram, {\n schema: prog,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PROG',\n serializer_version: 'v1.0.0',\n\n // SAP → Git: Map ADK object to abapGit values\n toAbapGit: (obj) => ({\n PROGDIR: {\n NAME: obj.name ?? '',\n STATE: 'A',\n SUBC: '1',\n FIXPT: 'X',\n UNICODE: 'X',\n },\n }),\n\n // Single source file\n getSource: (obj) => obj.getSource(),\n\n // Git → SAP: Map abapGit values to ADK data\n // Returns data matching AbapProgramSchema structure\n fromAbapGit: ({ PROGDIR, TPOOL }) => {\n // Extract description from TPOOL (text pool) if available\n // TPOOL.item can be a single object or an array depending on XML parser\n const rawItems = TPOOL?.item ?? [];\n const items = Array.isArray(rawItems) ? rawItems : [rawItems];\n const descriptionEntry = items.find((t: any) => t.ID === 'R');\n\n // SUBC can be parsed as number or string depending on XML parser\n const subc = String(PROGDIR?.SUBC ?? '');\n\n return {\n name: (PROGDIR?.NAME ?? '').toUpperCase(),\n type: 'PROG/P',\n description: descriptionEntry?.ENTRY ?? 'Program',\n fixPointArithmetic: PROGDIR?.FIXPT === 'X',\n activeUnicodeCheck: PROGDIR?.UNICODE === 'X',\n programType: subc === '1' ? 'executableProgram' : 'subroutinePool',\n };\n },\n\n // Git → SAP: Set source files on ADK object\n // Note: `_pendingSource` is not declared on the public ADK interface —\n // it is an implementation detail for deferred source saving.\n // The `as unknown as` double cast is the established pattern in this codebase.\n setSources: (obj, sources) => {\n if (sources.main) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * Shared source-inclusion rule for abapGit object handlers.\n *\n * A source is included when it is defined and either supplied by the caller\n * or non-empty on the object.\n */\nexport function shouldIncludeSource(\n source: string | undefined,\n suppliedSource: string | undefined,\n): boolean {\n if (source === undefined) return false;\n return suppliedSource !== undefined || source !== '';\n}\n","/**\n * Function Group (FUGR) object handler for abapGit format\n *\n * FUGR is a compound object — abapGit serializes it as multiple files:\n * {name}.fugr.xml — Main metadata (AREAT + INCLUDES + FUNCTIONS)\n * {name}.fugr.l{name}top.abap — TOP-include source (editable)\n * {name}.fugr.l{name}top.xml — TOP-include PROGDIR metadata\n * {name}.fugr.sapl{name}.abap — Main program source (system-generated)\n * {name}.fugr.sapl{name}.xml — Main program PROGDIR metadata\n * {name}.fugr.{funcname}.abap — Function module source (per FM)\n *\n * Note: FM metadata is stored INSIDE the main XML under <FUNCTIONS>,\n * NOT in separate per-FM XML files (that's how abapGit works).\n */\n\nimport { AdkFunctionGroup } from '../adk';\nimport { fugr } from '../../../schemas/generated';\nimport {\n createHandler,\n unwrapData,\n type HandlerContext,\n type SerializedFile,\n} from '../base';\nimport { shouldIncludeSource } from '../source-inclusion';\nimport { formatAbapGitXml } from '../xml-format';\n\ntype FugrObject = InstanceType<typeof AdkFunctionGroup>;\ntype FugrContext = HandlerContext<FugrObject>;\ntype SourceMap = Readonly<Record<string, string>> | undefined;\n\nfunction buildMainXmlFile(\n obj: FugrObject,\n objectName: string,\n nameUpper: string,\n functions: Record<string, unknown>[],\n ctx: FugrContext,\n): SerializedFile {\n const values: Record<string, unknown> = {\n AREAT: obj.description ?? '',\n INCLUDES: {\n SOBJ_NAME: [`L${nameUpper}TOP`, `SAPL${nameUpper}`],\n },\n };\n if (functions.length > 0) {\n values.FUNCTIONS = { item: functions };\n }\n const serializer = `LCL_OBJECT_${ctx.type}`;\n const fullPayload = {\n abapGit: {\n abap: { version: '1.0', values },\n version: 'v1.0.0',\n serializer,\n serializer_version: 'v1.0.0',\n },\n };\n const xmlContent = formatAbapGitXml(\n fugr.build(fullPayload, { pretty: true }),\n );\n return ctx.createFile(`${objectName}.${ctx.fileExtension}.xml`, xmlContent);\n}\n\ntype FmList = {\n fmItems: FmDescriptor[];\n functions: Record<string, unknown>[];\n};\n\nfunction deriveFmList(suppliedSources: SourceMap, objectName: string): FmList {\n if (!suppliedSources) return { fmItems: [], functions: [] };\n const topKey = `l${objectName}top`;\n const lowerTopKey = topKey;\n const lowerSap = `sapl${objectName}`;\n const fmItems = Object.keys(suppliedSources)\n .filter((key) => {\n const lower = key.toLowerCase();\n return lower !== 'main' && lower !== lowerTopKey && lower !== lowerSap;\n })\n .map((key) => ({ key, name: key.toLowerCase() }));\n const functions = fmItems.map((fm) => ({\n FUNCNAME: fm.key.toUpperCase(),\n }));\n return { fmItems, functions };\n}\n\nasync function buildTopSourceFile(\n obj: FugrObject,\n objectName: string,\n suppliedSources: SourceMap,\n ctx: FugrContext,\n): Promise<SerializedFile | undefined> {\n const hasExplicitSources = suppliedSources !== undefined;\n const topKey = `l${objectName}top`;\n const suppliedTopSource = suppliedSources\n ? (suppliedSources.main ?? suppliedSources[topKey])\n : undefined;\n try {\n const topSource =\n suppliedTopSource !== undefined || !hasExplicitSources\n ? (suppliedTopSource ?? (await obj.getSource()))\n : undefined;\n if (shouldIncludeSource(topSource, suppliedTopSource)) {\n return ctx.createFile(\n `${objectName}.${ctx.fileExtension}.l${objectName}top.abap`,\n topSource,\n );\n }\n } catch {\n // Source not available — skip\n }\n return undefined;\n}\n\nfunction buildProgramFiles(\n objectName: string,\n nameUpper: string,\n fixpt: string,\n ctx: FugrContext,\n): SerializedFile[] {\n const ext = ctx.fileExtension;\n return [\n ctx.createFile(\n `${objectName}.${ext}.l${objectName}top.xml`,\n buildProgdirXml(`L${nameUpper}TOP`, 'I', fixpt),\n ),\n ctx.createFile(\n `${objectName}.${ext}.sapl${objectName}.abap`,\n buildMainProgramSource(nameUpper),\n ),\n ctx.createFile(\n `${objectName}.${ext}.sapl${objectName}.xml`,\n buildProgdirXml(`SAPL${nameUpper}`, 'F', fixpt),\n ),\n ];\n}\n\nasync function buildFunctionModuleFiles(\n obj: FugrObject,\n fmItems: FmDescriptor[],\n suppliedSources: SourceMap,\n ctx: FugrContext,\n): Promise<SerializedFile[]> {\n const objectName = ctx.getObjectName(obj);\n const files: SerializedFile[] = [];\n const hasExplicitSources = suppliedSources !== undefined;\n for (const fm of fmItems) {\n const sourceKey = fm.key ?? fm.name;\n const funcName = fm.name.toLowerCase();\n const suppliedFmSource = suppliedSources?.[sourceKey];\n if (hasExplicitSources && suppliedFmSource === undefined) {\n continue;\n }\n try {\n const source =\n suppliedFmSource !== undefined\n ? suppliedFmSource\n : await obj.client.adt.functions.groups.fmodules.source.main.get(\n obj.name,\n fm.name,\n );\n if (shouldIncludeSource(source, suppliedFmSource)) {\n files.push(\n ctx.createFile(\n `${objectName}.${ctx.fileExtension}.${funcName}.abap`,\n source,\n ),\n );\n }\n } catch {\n // Source not available — skip\n }\n }\n return files;\n}\n\n/**\n * Map ADT processingType to abapGit REMOTE_CALL flag\n */\nfunction processingTypeToRemoteCall(\n processingType?: string,\n): string | undefined {\n switch (processingType) {\n case 'rfc':\n return 'R';\n case 'update':\n return undefined; // UPDATE_TASK handles this\n default:\n return undefined;\n }\n}\n\n/**\n * Map abapGit REMOTE_CALL flag to ADT processingType\n */\nfunction remoteCallToProcessingType(\n remoteCall?: string,\n updateTask?: string,\n): string {\n if (remoteCall === 'R') return 'rfc';\n if (updateTask && updateTask !== '' && updateTask !== ' ') return 'update';\n return 'normal';\n}\n\nfunction createFunctionGroupHandler(type: 'FUGR' | 'FUGS') {\n return createHandler<FugrObject, typeof fugr>(type, {\n schema: fugr,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n\n // SAP → Git: Map ADK object to abapGit values\n // Note: FUNCTIONS are added dynamically in the custom serialize method\n toAbapGit: (raw) => {\n const obj = unwrapData<FugrObject>(raw);\n\n const name = obj.name.toUpperCase();\n return {\n AREAT: obj.description ?? '',\n INCLUDES: {\n SOBJ_NAME: [`L${name}TOP`, `SAPL${name}`],\n },\n };\n },\n\n // Custom serialize: generate the full multi-file structure including FMs.\n serialize: async (obj, ctx, options) => {\n const objectName = ctx.getObjectName(obj); // lowercase\n const nameUpper = obj.name.toUpperCase();\n const suppliedSources: SourceMap = options?.sources;\n const hasExplicitSources = suppliedSources !== undefined;\n\n let fmItems: FmDescriptor[];\n let functions: Record<string, unknown>[];\n if (hasExplicitSources) {\n ({ fmItems, functions } = deriveFmList(suppliedSources, objectName));\n } else {\n fmItems = await discoverFunctionModules(obj);\n functions = await serializeFunctions(obj, fmItems);\n }\n\n const data = ctx.getData(obj);\n const fixpt = data.fixPointArithmetic ? 'X' : '';\n\n const topFile = await buildTopSourceFile(\n obj,\n objectName,\n suppliedSources,\n ctx,\n );\n return [\n buildMainXmlFile(obj, objectName, nameUpper, functions, ctx),\n ...(topFile ? [topFile] : []),\n ...buildProgramFiles(objectName, nameUpper, fixpt, ctx),\n ...(await buildFunctionModuleFiles(obj, fmItems, suppliedSources, ctx)),\n ];\n },\n\n // Git → SAP: Map abapGit values to ADK data\n fromAbapGit: ({ AREAT, FUNCTIONS }) => ({\n name: '', // Resolved from filename by deserializer\n type: 'FUGR/F',\n description: AREAT,\n language: 'EN',\n masterLanguage: 'EN',\n // Store FUNCTIONS metadata for the deserializer to extract child FMs\n _functions: FUNCTIONS,\n }),\n\n // Git → SAP: Set source files on ADK object\n // FUGR sources arrive with dynamic suffixes like l{name}top and sapl{name}.\n // The TOP-include (l{name}top) is the main editable source.\n // FM sources arrive with the FM name as suffix key.\n setSources: (obj, sources) => {\n const name = obj.name.toLowerCase();\n // Find the TOP-include source — this is the editable source for the function group\n const topKey = `l${name}top`;\n const mainSource = sources.main ?? sources[topKey];\n if (mainSource) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n mainSource;\n }\n\n // Collect FM sources — these are sources where the suffix is NOT an include name\n const fmSources: Record<string, string> = {};\n const mainProgramKey = `sapl${name}`;\n for (const [suffix, content] of Object.entries(sources)) {\n if (\n suffix === 'main' ||\n suffix === topKey ||\n suffix === mainProgramKey\n ) {\n continue; // Skip FUGR includes\n }\n // This is an FM source — key is the function name (lowercase)\n fmSources[suffix] = content;\n }\n\n // Store FM sources on the object for the deserializer to extract later\n if (Object.keys(fmSources).length > 0) {\n (\n obj as unknown as { _pendingFmSources: Record<string, string> }\n )._pendingFmSources = fmSources;\n }\n // Note: sapl{name} (main program) is system-generated and not deployed via ADT\n },\n });\n}\n\nexport const functionGroupHandler = createFunctionGroupHandler('FUGR');\n\n// FUGS (function group with screens) inherits the full FUGR serializer\n// upstream — same payload, same multi-file layout, .fugs extension.\nexport const functionGroupScreensHandler = createFunctionGroupHandler('FUGS');\n\n// ============================================\n// Serialization helpers\n// ============================================\n\n/**\n * Minimal FM descriptor discovered from object structure\n */\ninterface FmDescriptor {\n name: string;\n type?: string;\n /** Original source-map key when the list was derived from explicit sources. */\n key?: string;\n}\n\n/**\n * Discover child function modules via object structure endpoint.\n * Falls back to empty list if the endpoint is unavailable.\n */\nasync function discoverFunctionModules(\n obj: InstanceType<typeof AdkFunctionGroup>,\n): Promise<FmDescriptor[]> {\n try {\n const response = await obj.client.adt.functions.groups.objectstructure(\n obj.name,\n );\n\n // Parse object structure XML to extract FM entries\n // The response contains <objectStructureElement> items with type=\"FUGR/FF\"\n const responseStr = String(response);\n const fmNames: FmDescriptor[] = [];\n const regex = /type=\"FUGR\\/FF\"[^>]*adtcore:name=\"([^\"]+)\"/g;\n let match;\n while ((match = regex.exec(responseStr)) !== null) {\n fmNames.push({ name: match[1] });\n }\n\n // Also try alternate attribute order\n const regex2 = /adtcore:name=\"([^\"]+)\"[^>]*type=\"FUGR\\/FF\"/g;\n while ((match = regex2.exec(responseStr)) !== null) {\n if (match?.[1] && !fmNames.some((f) => f.name === match[1])) {\n fmNames.push({ name: match[1] });\n }\n }\n\n return fmNames;\n } catch {\n return [];\n }\n}\n\n/**\n * Serialize function module metadata into abapGit FUNCTIONS format.\n * Fetches each FM's metadata via the ADT fmodules contract.\n */\nasync function serializeFunctions(\n obj: InstanceType<typeof AdkFunctionGroup>,\n fmItems: FmDescriptor[],\n): Promise<Record<string, unknown>[]> {\n const functions: Record<string, unknown>[] = [];\n\n for (const fm of fmItems) {\n try {\n const response = await obj.client.adt.functions.groups.fmodules.get(\n obj.name,\n fm.name,\n );\n const fmData = (response as Record<string, unknown>)\n ?.abapFunctionModule as Record<string, unknown> | undefined;\n if (!fmData) continue;\n\n // Map ADT metadata to abapGit FUNCTIONS format\n const item: Record<string, unknown> = {\n FUNCNAME: fm.name.toUpperCase(),\n SHORT_TEXT: fmData.description ?? '',\n };\n\n // Map processing type flags\n const remoteCall = processingTypeToRemoteCall(\n fmData.processingType as string | undefined,\n );\n if (remoteCall) item.REMOTE_CALL = remoteCall;\n if (fmData.basXMLEnabled) item.REMOTE_BASXML = 'X';\n\n functions.push(item);\n } catch {\n // FM metadata not available — add minimal entry\n functions.push({ FUNCNAME: fm.name.toUpperCase() });\n }\n }\n\n return functions;\n}\n\n// ============================================\n// Exported helpers (used by deserializer)\n// ============================================\n\n/**\n * Extract function module descriptors from parsed abapGit FUNCTIONS data.\n * Used by the deserializer to create child AdkFunctionModule objects.\n */\nexport interface FugrFunctionDescriptor {\n funcName: string;\n shortText?: string;\n processingType: string;\n basXMLEnabled: boolean;\n}\n\nexport function extractFunctionDescriptors(\n functions: unknown,\n): FugrFunctionDescriptor[] {\n if (!functions) return [];\n\n // Handle both { item: [...] } and direct array forms\n const items = Array.isArray(functions)\n ? functions\n : Array.isArray((functions as Record<string, unknown>)?.item)\n ? ((functions as Record<string, unknown>).item as Record<\n string,\n unknown\n >[])\n : (functions as Record<string, unknown>)?.item\n ? [\n (functions as Record<string, unknown>).item as Record<\n string,\n unknown\n >,\n ]\n : [];\n\n return (items as Array<Record<string, unknown>>).map((fm) => ({\n funcName: String((fm.FUNCNAME as string | undefined) ?? ''),\n shortText: fm.SHORT_TEXT\n ? String(fm.SHORT_TEXT as string | number | boolean)\n : undefined,\n processingType: remoteCallToProcessingType(\n fm.REMOTE_CALL as string | undefined,\n fm.UPDATE_TASK as string | undefined,\n ),\n basXMLEnabled: fm.REMOTE_BASXML === 'X',\n }));\n}\n\n// ============================================\n// XML building helpers\n// ============================================\n\n/**\n * Build PROGDIR XML for an include program (best-effort defaults).\n * PROGDIR is SAP-internal metadata that abapGit stores but ADT doesn't expose.\n */\nfunction buildProgdirXml(\n programName: string,\n subc: 'I' | 'F',\n fixpt: string,\n): string {\n // SUBC: I = Include, F = Function pool\n // RLOAD: E = only for function pool (main program)\n const rload = subc === 'F' ? '\\n <RLOAD>E</RLOAD>' : '';\n return `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<abapGit version=\"v1.0.0\">\n <asx:abap xmlns:asx=\"http://www.sap.com/abapxml\" version=\"1.0\">\n <asx:values>\n <PROGDIR>\n <NAME>${programName}</NAME>\n <SUBC>${subc}</SUBC>${rload}\n <FIXPT>${fixpt}</FIXPT>\n <UCCHECK>X</UCCHECK>\n </PROGDIR>\n </asx:values>\n </asx:abap>\n</abapGit>\n`;\n}\n\n/**\n * Build the standard main program source (SAPL{NAME}).\n * This is system-generated and contains INCLUDE declarations.\n */\nfunction buildMainProgramSource(nameUpper: string): string {\n return `*******************************************************************\n* System-defined Include-files. *\n*******************************************************************\n INCLUDE L${nameUpper}TOP. \" Global Declarations\n INCLUDE L${nameUpper}UXX. \" Function Modules\n\n*******************************************************************\n* User-defined Include-files (if necessary). *\n*******************************************************************\n* INCLUDE L${nameUpper}F... \" Subroutines\n* INCLUDE L${nameUpper}O... \" PBO-Modules\n* INCLUDE L${nameUpper}I... \" PAI-Modules\n* INCLUDE L${nameUpper}E... \" Events\n* INCLUDE L${nameUpper}P... \" Local class implement.\n* INCLUDE L${nameUpper}T99. \" ABAP Unit tests\n`;\n}\n","/**\n * Domain (DOMA) object handler for abapGit format\n */\n\nimport { AdkDomain } from '../adk';\nimport { doma } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\nexport const domainHandler = createHandler(AdkDomain, {\n schema: doma,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DOMA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const data = obj.dataSync;\n const typeInfo = data?.content?.typeInformation;\n const outInfo = data?.content?.outputInformation;\n const valueInfo = data?.content?.valueInformation;\n\n // Serialize fixed values if present\n const fixValues = valueInfo?.fixValues?.fixValue;\n const DD07V_TAB =\n fixValues && fixValues.length > 0\n ? {\n DD07V: fixValues.map((fv) => {\n const entry: Record<string, string> = {\n DOMNAME: obj.name ?? '',\n VALPOS: String(fv.position ?? '').padStart(4, '0'),\n DDLANGUAGE: isoToSapLang(data?.language),\n DOMVALUE_L: fv.low ?? '',\n DDTEXT: fv.text ?? '',\n };\n // Only include DOMVALUE_H if it has a value (for ranges)\n if (fv.high) {\n entry.DOMVALUE_H = fv.high;\n }\n return entry;\n }),\n }\n : undefined;\n\n return {\n DD01V: {\n DOMNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(data?.language),\n DATATYPE: typeInfo?.datatype ?? '',\n LENG: String(typeInfo?.length ?? '').padStart(6, '0'),\n DECIMALS: typeInfo?.decimals\n ? String(typeInfo.decimals).padStart(6, '0')\n : undefined,\n OUTPUTLEN: String(outInfo?.length ?? '').padStart(6, '0'),\n LOWERCASE: outInfo?.lowercase ? 'X' : undefined,\n SIGNFLAG: outInfo?.signExists ? 'X' : undefined,\n CONVEXIT: outInfo?.conversionExit || undefined,\n ENTITYTAB: valueInfo?.valueTableRef?.name || undefined,\n VALEXI: fixValues && fixValues.length > 0 ? 'X' : undefined,\n DDTEXT: obj.description ?? '',\n DOMMASTER: isoToSapLang(obj.masterLanguage),\n },\n DD07V_TAB,\n };\n },\n\n fromAbapGit: ({ DD01V, DD07V_TAB }) => {\n const fixValues =\n DD07V_TAB?.DD07V?.map((fv, idx) => ({\n position: Number(fv.VALPOS ?? idx + 1),\n low: fv.DOMVALUE_L ?? '',\n high: fv.DOMVALUE_H ?? '',\n text: fv.DDTEXT ?? '',\n })) ?? [];\n\n return {\n name: (DD01V?.DOMNAME ?? '').toUpperCase(),\n type: 'DOMA/DD',\n description: DD01V?.DDTEXT,\n language: sapLangToIso(DD01V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD01V?.DDLANGUAGE),\n content: {\n typeInformation: {\n datatype: DD01V?.DATATYPE ?? '',\n length: Number(DD01V?.LENG ?? 0),\n decimals: Number(DD01V?.DECIMALS ?? 0),\n },\n outputInformation: {\n length: Number(DD01V?.OUTPUTLEN ?? 0),\n style: '',\n conversionExit: DD01V?.CONVEXIT || undefined,\n signExists: DD01V?.SIGNFLAG === 'X',\n lowercase: DD01V?.LOWERCASE === 'X',\n },\n valueInformation: {\n valueTableRef: {\n name: DD01V?.ENTITYTAB || undefined,\n },\n fixValues: {\n fixValue: fixValues.length > 0 ? fixValues : undefined,\n },\n },\n },\n } as { name: string } & Record<string, unknown>;\n },\n});\n","/**\n * Data Element (DTEL) object handler for abapGit format\n */\n\nimport { AdkDataElement } from '../adk';\nimport { dtel } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport {\n isoToSapLang,\n sapLangToIso,\n abapLangVerToAdt,\n abapLangVerFromAdt,\n} from '../lang';\n\n/**\n * Map ADT typeKind → abapGit REFKIND\n */\nconst TYPEKIND_TO_REFKIND: Record<string, string> = {\n domain: 'D',\n predefinedAbapType: '',\n refToPredefinedAbapType: 'R',\n refToDictionaryType: 'R',\n refToClifType: 'R',\n};\n\n/**\n * Map ADT typeKind → abapGit REFTYPE (only for reference types)\n */\nconst TYPEKIND_TO_REFTYPE: Record<string, string | undefined> = {\n refToClifType: 'C',\n refToDictionaryType: 'E',\n refToPredefinedAbapType: 'E',\n};\n\n/**\n * Derive OUTPUTLEN from ABAP data type + length + decimals.\n *\n * The ADT REST API for data elements does not return OUTPUTLEN — SAP derives\n * it internally from the type definition. This function replicates SAP's\n * output length calculation for standard ABAP dictionary types.\n */\nfunction deriveOutputLength(\n dataType: string | undefined,\n length: number | undefined,\n decimals: number | undefined,\n): string | undefined {\n if (!dataType || !length) return undefined;\n\n const type = dataType.toUpperCase();\n const len = length;\n const dec = decimals ?? 0;\n\n switch (type) {\n // Simple types: output length = internal length\n case 'CHAR':\n case 'NUMC':\n case 'UNIT':\n case 'CUKY':\n case 'LCHR':\n case 'SSTRING':\n return String(len).padStart(6, '0');\n\n // Fixed-length types with known output length\n case 'CLNT':\n return '000003';\n case 'LANG':\n return '000001';\n case 'DATS':\n return '000010';\n case 'TIMS':\n return '000008';\n\n // Integer types\n case 'INT1':\n return '000003';\n case 'INT2':\n return '000005';\n case 'INT4':\n return '000010';\n case 'INT8':\n return '000019';\n\n // Floating point\n case 'FLTP':\n return '000022';\n\n // Numeric types with formatting: len + sign + group separators\n case 'DEC':\n case 'CURR':\n case 'QUAN': {\n const intDigits = len - dec;\n const separators = intDigits > 1 ? Math.floor((intDigits - 1) / 3) : 0;\n const outputLen = len + 1 + separators;\n return String(outputLen).padStart(6, '0');\n }\n\n // Raw/hex types: 2 hex chars per byte\n case 'RAW':\n case 'LRAW':\n return String(len * 2).padStart(6, '0');\n\n // Variable-length types have no meaningful output length\n case 'STRING':\n case 'RAWSTRING':\n case 'GEOM_EWKB':\n return undefined;\n\n default:\n return undefined;\n }\n}\n\nexport const dataElementHandler = createHandler(AdkDataElement, {\n schema: dtel,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DTEL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const data = obj.dataSync;\n const de = data?.dataElement;\n const typeKind = de?.typeKind ?? '';\n\n // Domain-based DTELs: DATATYPE/LENG/DECIMALS/OUTPUTLEN are inherited\n // from the domain, not stored on the DTEL itself. abapGit omits them.\n const isDomain = typeKind === 'domain';\n\n // Reference types: abapGit emits DATATYPE=REF but ADT doesn't return it.\n const isRef = typeKind.startsWith('refTo');\n const dataType = isRef ? 'REF' : de?.dataType || undefined;\n\n // Suppress domain-inherited type info\n const effectiveDataType = isDomain ? undefined : dataType;\n const effectiveLeng =\n isDomain || !de?.dataTypeLength\n ? undefined\n : String(de.dataTypeLength).padStart(6, '0');\n const effectiveDecimals =\n isDomain || !de?.dataTypeDecimals\n ? undefined\n : String(de.dataTypeDecimals).padStart(6, '0');\n const effectiveOutputLen = isDomain\n ? undefined\n : deriveOutputLength(\n de?.dataType,\n de?.dataTypeLength,\n de?.dataTypeDecimals,\n );\n\n // Properties ordered to match canonical DD04V table column order.\n // The XSD xs:sequence enforces this order in the XML output.\n return {\n DD04V: {\n ROLLNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(obj.language || undefined),\n DOMNAME: de?.typeName || undefined,\n HEADLEN: de?.headingFieldLength\n ? String(de.headingFieldLength)\n : undefined,\n SCRLEN1: de?.shortFieldLength ? String(de.shortFieldLength) : undefined,\n SCRLEN2: de?.mediumFieldLength\n ? String(de.mediumFieldLength)\n : undefined,\n SCRLEN3: de?.longFieldLength ? String(de.longFieldLength) : undefined,\n DDTEXT: obj.description ?? '',\n REPTEXT: de?.headingFieldLabel || undefined,\n SCRTEXT_S: de?.shortFieldLabel || undefined,\n SCRTEXT_M: de?.mediumFieldLabel || undefined,\n SCRTEXT_L: de?.longFieldLabel || undefined,\n DTELMASTER: isoToSapLang(obj.masterLanguage || undefined),\n DATATYPE: effectiveDataType,\n LENG: effectiveLeng,\n DECIMALS: effectiveDecimals,\n OUTPUTLEN: effectiveOutputLen,\n REFKIND: TYPEKIND_TO_REFKIND[typeKind] || undefined,\n REFTYPE: TYPEKIND_TO_REFTYPE[typeKind],\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(data?.abapLanguageVersion),\n },\n };\n },\n\n fromAbapGit: ({ DD04V }) => {\n // Map REFKIND + REFTYPE to ADT typeKind enum\n const refKind = DD04V?.REFKIND ?? '';\n const refType = DD04V?.REFTYPE ?? '';\n let typeKind: string;\n if (refKind === 'D') {\n typeKind = 'domain';\n } else if (refKind === 'R') {\n typeKind = refType === 'C' ? 'refToClifType' : 'refToDictionaryType';\n } else {\n typeKind = DD04V?.DATATYPE ? 'predefinedAbapType' : 'domain';\n }\n\n return {\n name: (DD04V?.ROLLNAME ?? '').toUpperCase(),\n type: 'DTEL/DE',\n description: DD04V?.DDTEXT,\n language: sapLangToIso(DD04V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD04V?.DDLANGUAGE),\n abapLanguageVersion: abapLangVerToAdt(DD04V?.ABAP_LANGUAGE_VERSION),\n dataElement: {\n // SAP's strict xs:sequence parser requires ALL elements to be present.\n // Every field in the dataelements.xsd sequence must have an explicit value.\n typeKind,\n typeName: DD04V?.DOMNAME || '',\n dataType: DD04V?.DATATYPE || '',\n dataTypeLength: DD04V?.LENG ? Number(DD04V.LENG) : 0,\n dataTypeLengthEnabled: false,\n dataTypeDecimals: DD04V?.DECIMALS ? Number(DD04V.DECIMALS) : 0,\n dataTypeDecimalsEnabled: false,\n shortFieldLabel: DD04V?.SCRTEXT_S || '',\n shortFieldLength: DD04V?.SCRLEN1 ? Number(DD04V.SCRLEN1) : 0,\n shortFieldMaxLength: DD04V?.SCRLEN1 ? Number(DD04V.SCRLEN1) : 0,\n mediumFieldLabel: DD04V?.SCRTEXT_M || '',\n mediumFieldLength: DD04V?.SCRLEN2 ? Number(DD04V.SCRLEN2) : 0,\n mediumFieldMaxLength: DD04V?.SCRLEN2 ? Number(DD04V.SCRLEN2) : 0,\n longFieldLabel: DD04V?.SCRTEXT_L || '',\n longFieldLength: DD04V?.SCRLEN3 ? Number(DD04V.SCRLEN3) : 0,\n longFieldMaxLength: DD04V?.SCRLEN3 ? Number(DD04V.SCRLEN3) : 0,\n headingFieldLabel: DD04V?.REPTEXT || '',\n headingFieldLength: DD04V?.HEADLEN ? Number(DD04V.HEADLEN) : 0,\n headingFieldMaxLength: DD04V?.HEADLEN ? Number(DD04V.HEADLEN) : 0,\n searchHelp: '',\n searchHelpParameter: '',\n setGetParameter: '',\n defaultComponentName: '',\n deactivateInputHistory: false,\n changeDocument: false,\n leftToRightDirection: false,\n deactivateBIDIFiltering: false,\n documentationStatus: '',\n },\n } as { name: string } & Record<string, unknown>;\n },\n});\n","/**\n * CDS AST → abapGit DD02V/DD03P Mapping\n *\n * Transforms @abapify/acds AST nodes into DD02V (header) and DD03P (field)\n * data structures for abapGit XML serialization.\n *\n * When a TypeResolver is provided, named type references are resolved via\n * ADT to determine whether they are data elements or structures, and to\n * extract metadata (search help origin, description) that is not available\n * from the CDS source alone.\n */\n\nimport type {\n TableDefinition,\n StructureDefinition,\n Annotation,\n AnnotationValue,\n FieldDefinition,\n IncludeDirective,\n BuiltinTypeRef,\n TableMember,\n} from '@abapify/acds';\n\n// ============================================\n// DD02V / DD03P data types\n// ============================================\n\nexport interface DD02VData {\n TABNAME?: string;\n DDLANGUAGE?: string;\n TABCLASS?: string;\n LANGDEP?: string;\n DDTEXT?: string;\n MASTERLANG?: string;\n CONTFLAG?: string;\n EXCLASS?: string;\n AUTHCLASS?: string;\n CLIDEP?: string;\n BUFFERED?: string;\n MATEFLAG?: string;\n}\n\nexport interface DD03PData {\n FIELDNAME?: string;\n POSITION?: string;\n KEYFLAG?: string;\n ROLLNAME?: string;\n ADMINFIELD?: string;\n INTTYPE?: string;\n INTLEN?: string;\n NOTNULL?: string;\n DATATYPE?: string;\n LENG?: string;\n DECIMALS?: string;\n SHLPORIGIN?: string;\n MASK?: string;\n COMPTYPE?: string;\n REFTABLE?: string;\n REFFIELD?: string;\n PRECFIELD?: string;\n DDTEXT?: string;\n}\n\n// ============================================\n// Type Resolver — resolves named types via ADT\n// ============================================\n\n/** Result of resolving a named type reference */\nexport interface ResolvedType {\n /** 'E' = data element, 'S' = structure */\n comptype: 'E' | 'S';\n /** Search help origin (e.g. 'D' for domain search help) */\n shlporigin?: string;\n /** Description text (used for include DDTEXT) */\n description?: string;\n}\n\n/**\n * Resolves named type references by querying ADT endpoints.\n * Caches results to avoid duplicate HTTP requests.\n */\nexport interface TypeResolver {\n resolve(name: string): Promise<ResolvedType>;\n}\n\n// ============================================\n// Annotation helpers\n// ============================================\n\n/** Extract the string value from an annotation value node */\nfunction annotationStringValue(val: AnnotationValue): string {\n switch (val.kind) {\n case 'string':\n return val.value;\n case 'enum':\n return val.value;\n case 'boolean':\n return val.value ? 'X' : '';\n case 'number':\n return String(val.value);\n default:\n return '';\n }\n}\n\n/** Find annotation by key and return its string value */\nfunction getAnnotation(\n annotations: Annotation[],\n key: string,\n): string | undefined {\n const ann = annotations.find((a) => a.key === key);\n return ann ? annotationStringValue(ann.value) : undefined;\n}\n\n// ============================================\n// Annotation → DD02V Mapping\n// ============================================\n\nconst TABLE_CATEGORY_MAP: Record<string, string> = {\n TRANSPARENT: 'TRANSP',\n CLUSTER: 'CLUSTER',\n POOL: 'POOL',\n APPEND: 'APPEND',\n};\n\nconst ENHANCEMENT_CATEGORY_MAP: Record<string, string> = {\n NOT_EXTENSIBLE: '1',\n EXTENSIBLE_CHARACTER_NUMERIC: '2',\n EXTENSIBLE_CHARACTER: '3',\n EXTENSIBLE_ANY: '4',\n NOT_CLASSIFIED: '0',\n};\n\nconst DATA_MAINTENANCE_MAP: Record<string, string> = {\n RESTRICTED: 'X',\n NOT_ALLOWED: 'N',\n ALLOWED: '',\n};\n\n/**\n * Build DD02V data from a parsed CDS table/structure definition\n */\nexport function buildDD02V(\n def: TableDefinition | StructureDefinition,\n language: string,\n description: string,\n): DD02VData {\n // Compute all values first, then assemble in abapGit field order\n let tabclass = def.kind === 'structure' ? 'INTTAB' : 'TRANSP';\n\n const tableCategory = getAnnotation(\n def.annotations,\n 'AbapCatalog.tableCategory',\n );\n if (tableCategory) {\n tabclass = TABLE_CATEGORY_MAP[tableCategory] || tabclass;\n }\n\n const deliveryClass = getAnnotation(\n def.annotations,\n 'AbapCatalog.deliveryClass',\n );\n\n const enhancementCategory = getAnnotation(\n def.annotations,\n 'AbapCatalog.enhancement.category',\n );\n\n const dataMaintenance = getAnnotation(\n def.annotations,\n 'AbapCatalog.dataMaintenance',\n );\n\n // Detect language-dependent structure/table:\n // LANGDEP=X when any field references data element SPRAS or builtin type abap.lang\n const hasLanguageField = def.members.some((m) => {\n if ('kind' in m && m.kind === 'include') return false;\n const f = m as FieldDefinition;\n if (f.type.kind === 'named') return f.type.name.toUpperCase() === 'SPRAS';\n if (f.type.kind === 'builtin')\n return (f.type as BuiltinTypeRef).name === 'lang';\n return false;\n });\n\n // Detect client-dependent table:\n // CLIDEP=X when any key field references data element MANDT or builtin type abap.clnt\n const hasClientKeyField = def.members.some((m) => {\n if ('kind' in m && m.kind === 'include') return false;\n const f = m as FieldDefinition;\n if (!f.isKey) return false;\n if (f.type.kind === 'named') return f.type.name.toUpperCase() === 'MANDT';\n if (f.type.kind === 'builtin')\n return (f.type as BuiltinTypeRef).name === 'clnt';\n return false;\n });\n\n // Build result in standard abapGit DD02V field order:\n // TABNAME, DDLANGUAGE, TABCLASS, LANGDEP, CLIDEP, DDTEXT, MASTERLANG, CONTFLAG, EXCLASS, MATEFLAG\n const result: DD02VData = {};\n result.TABNAME = def.name.toUpperCase();\n result.DDLANGUAGE = language;\n result.TABCLASS = tabclass;\n if (hasLanguageField) result.LANGDEP = 'X';\n if (hasClientKeyField) result.CLIDEP = 'X';\n result.DDTEXT = description;\n result.MASTERLANG = language;\n if (deliveryClass) result.CONTFLAG = deliveryClass;\n if (enhancementCategory)\n result.EXCLASS = ENHANCEMENT_CATEGORY_MAP[enhancementCategory];\n if (dataMaintenance)\n result.MATEFLAG = DATA_MAINTENANCE_MAP[dataMaintenance] ?? '';\n\n return result;\n}\n\n// ============================================\n// Field → DD03P Mapping\n// ============================================\n\ninterface BuiltinType {\n datatype: string;\n inttype: string;\n /** Fixed DDIC length (for types without user-specified length) */\n length?: number;\n /** Fixed DDIC decimals (e.g. FLTP always has 16) */\n decimals?: number;\n /** Fixed internal byte length (overrides computed INTLEN) */\n fixedIntlen?: number;\n /** Whether this type has no LENG in the DDIC (variable-length types) */\n noLeng?: boolean;\n /** SHLPORIGIN value for search help (T = table-driven) */\n shlporigin?: string;\n}\n\n// DDIC INTTYPE/INTLEN mapping based on SAP abapGit serialization:\n// - INT1/INT2/INT4 use INTTYPE=X with raw byte-size INTLEN\n// - DATS/TIMS/DATN/TIMN use Unicode-doubled INTLEN\n// - String/rawstring have fixedIntlen=8 and no LENG\nconst BUILTIN_TYPES: Record<string, BuiltinType> = {\n char: { datatype: 'CHAR', inttype: 'C' },\n clnt: { datatype: 'CLNT', inttype: 'C', length: 3 },\n numc: { datatype: 'NUMC', inttype: 'N' },\n dats: {\n datatype: 'DATS',\n inttype: 'D',\n length: 8,\n fixedIntlen: 16,\n shlporigin: 'T',\n },\n datn: {\n datatype: 'DATN',\n inttype: 'D',\n length: 8,\n fixedIntlen: 16,\n shlporigin: 'T',\n },\n tims: {\n datatype: 'TIMS',\n inttype: 'T',\n length: 6,\n fixedIntlen: 12,\n shlporigin: 'T',\n },\n timn: {\n datatype: 'TIMN',\n inttype: 'T',\n length: 6,\n fixedIntlen: 12,\n shlporigin: 'T',\n },\n string: { datatype: 'STRG', inttype: 'g', fixedIntlen: 8, noLeng: true },\n xstring: { datatype: 'RSTR', inttype: 'y', fixedIntlen: 8, noLeng: true },\n int1: { datatype: 'INT1', inttype: 'X', length: 3, fixedIntlen: 1 },\n int2: { datatype: 'INT2', inttype: 'X', length: 5, fixedIntlen: 2 },\n int4: { datatype: 'INT4', inttype: 'X', length: 10, fixedIntlen: 4 },\n int8: { datatype: 'INT8', inttype: '8', length: 19, fixedIntlen: 8 },\n fltp: {\n datatype: 'FLTP',\n inttype: 'F',\n length: 16,\n decimals: 16,\n fixedIntlen: 8,\n },\n dec: { datatype: 'DEC', inttype: 'P' },\n curr: { datatype: 'CURR', inttype: 'P' },\n quan: { datatype: 'QUAN', inttype: 'P' },\n raw: { datatype: 'RAW', inttype: 'X' },\n rawstring: { datatype: 'RSTR', inttype: 'y', fixedIntlen: 8, noLeng: true },\n lang: { datatype: 'LANG', inttype: 'C', length: 1 },\n unit: { datatype: 'UNIT', inttype: 'C', length: 3 },\n cuky: { datatype: 'CUKY', inttype: 'C', length: 5 },\n d16n: { datatype: 'D16N', inttype: 'a', fixedIntlen: 8 },\n d34n: { datatype: 'D34N', inttype: 'e', fixedIntlen: 16 },\n utclong: { datatype: 'UTCL', inttype: 'p', length: 27, fixedIntlen: 8 },\n};\n\n/** Zero-pad number to given width */\nfunction zeroPad(n: number, width: number): string {\n return String(n).padStart(width, '0');\n}\n\n/** Compute internal length from type info */\nfunction computeIntlen(builtin: BuiltinType, length?: number): number {\n if (builtin.fixedIntlen !== undefined) return builtin.fixedIntlen;\n\n // Packed decimal types: ceil((length + 1) / 2)\n if (builtin.inttype === 'P' && length !== undefined) {\n return Math.ceil((length + 1) / 2);\n }\n\n // Raw bytes: length directly\n if (builtin.inttype === 'X' && length !== undefined) {\n return length;\n }\n\n // Character types: length * 2 (Unicode)\n if (length !== undefined) {\n return length * 2;\n }\n\n // Fixed-length types with known length\n if (builtin.length !== undefined) {\n return builtin.length * 2;\n }\n\n return 0;\n}\n\n/** Build a DD03P entry from a single field definition */\nasync function buildFieldDD03P(\n field: FieldDefinition,\n tableName: string,\n resolver?: TypeResolver,\n): Promise<DD03PData> {\n // Compute all values first\n const isKey = field.isKey;\n const notNull = field.notNull;\n let rollname: string | undefined;\n let comptype: string | undefined;\n let inttype: string | undefined;\n let intlen: string | undefined;\n let datatype: string | undefined;\n let leng: string | undefined;\n let decimals: string | undefined;\n let mask: string | undefined;\n let shlporigin: string | undefined;\n let reftable: string | undefined;\n let reffield: string | undefined;\n\n if (field.type.kind === 'builtin') {\n const bt = field.type as BuiltinTypeRef;\n const typeInfo = BUILTIN_TYPES[bt.name];\n if (typeInfo) {\n // Use explicit CDS length, or fall back to fixed DDIC length\n const length = bt.length ?? typeInfo.length;\n inttype = typeInfo.inttype;\n intlen = zeroPad(computeIntlen(typeInfo, length), 6);\n datatype = typeInfo.datatype;\n\n // LENG: skip for variable-length types (string, xstring, rawstring)\n if (!typeInfo.noLeng && length !== undefined) {\n leng = zeroPad(length, 6);\n }\n\n // DECIMALS: use explicit CDS decimals, or fixed DDIC decimals\n const dec = bt.decimals ?? typeInfo.decimals;\n if (dec !== undefined) decimals = zeroPad(dec, 6);\n\n // MASK: all builtin types get \" DATATYPE\"\n mask = ` ${typeInfo.datatype}`;\n\n // SHLPORIGIN (date/time types)\n if (typeInfo.shlporigin) shlporigin = typeInfo.shlporigin;\n\n // REFTABLE/REFFIELD for currency and quantity fields\n // These come from CDS annotations on the field\n // Annotation value is 'tablename.fieldname' — we only need the field part\n if (bt.name === 'curr' || bt.name === 'quan') {\n const refAnnotation = getAnnotation(\n field.annotations,\n bt.name === 'curr'\n ? 'Semantics.amount.currencyCode'\n : 'Semantics.quantity.unitOfMeasure',\n );\n if (refAnnotation) {\n reftable = tableName;\n // Strip table prefix if present (e.g. 'ztest.currency_code' → 'CURRENCY_CODE')\n const parts = refAnnotation.split('.');\n reffield = parts[parts.length - 1].toUpperCase();\n }\n }\n }\n } else {\n // Named type reference — resolve via ADT if available\n rollname = field.type.name.toUpperCase();\n comptype = 'E'; // Default: data element\n if (resolver) {\n const resolved = await resolver.resolve(field.type.name);\n comptype = resolved.comptype;\n if (resolved.shlporigin) shlporigin = resolved.shlporigin;\n if (resolved.comptype === 'S') {\n datatype = 'STRU';\n mask = ' STRUS';\n }\n }\n }\n\n // Build in standard abapGit DD03P field order\n //\n // NOTE: POSITION is a real DD03P database value. abapGit emits it\n // inconsistently (only for some transparent tables). We omit it to\n // avoid roundtrip mismatches — SAP auto-computes it on import.\n const result: DD03PData = {};\n result.FIELDNAME = field.name.toUpperCase();\n if (isKey) result.KEYFLAG = 'X';\n if (rollname) result.ROLLNAME = rollname;\n result.ADMINFIELD = '0';\n if (inttype) result.INTTYPE = inttype;\n if (intlen) result.INTLEN = intlen;\n if (notNull) result.NOTNULL = 'X';\n if (datatype) result.DATATYPE = datatype;\n if (leng) result.LENG = leng;\n if (decimals) result.DECIMALS = decimals;\n if (shlporigin) result.SHLPORIGIN = shlporigin;\n if (reftable) result.REFTABLE = reftable;\n if (reffield) result.REFFIELD = reffield;\n if (mask) result.MASK = mask;\n if (comptype) result.COMPTYPE = comptype;\n\n return result;\n}\n\n/**\n * Build DD03P entries from table/structure members\n */\nexport async function buildDD03P(\n members: TableMember[],\n tableName = '',\n resolver?: TypeResolver,\n): Promise<DD03PData[]> {\n const entries: DD03PData[] = [];\n\n for (const member of members) {\n if ('kind' in member && member.kind === 'include') {\n const inc = member as IncludeDirective;\n const includeName = inc.name.toUpperCase();\n\n // Resolve include description via ADT if available\n let ddtext: string | undefined;\n if (resolver) {\n const resolved = await resolver.resolve(inc.name);\n ddtext = resolved.description;\n }\n\n if (inc.suffix) {\n // Include with suffix → .INCLU-<SUFFIX> entry\n const entry: DD03PData = {\n FIELDNAME: `.INCLU-${inc.suffix.toUpperCase()}`,\n ADMINFIELD: '0',\n PRECFIELD: includeName,\n MASK: ' S',\n COMPTYPE: 'S',\n };\n if (ddtext) entry.DDTEXT = ddtext;\n entries.push(entry);\n } else {\n // Plain include → .INCLUDE entry\n const entry: DD03PData = {\n FIELDNAME: '.INCLUDE',\n ADMINFIELD: '0',\n PRECFIELD: includeName,\n MASK: ' S',\n COMPTYPE: 'S',\n };\n if (ddtext) entry.DDTEXT = ddtext;\n entries.push(entry);\n }\n } else {\n // Regular field definition\n const field = member as FieldDefinition;\n entries.push(await buildFieldDD03P(field, tableName, resolver));\n }\n }\n\n return entries;\n}\n","/**\n * Table/Structure serialization helpers for abapGit format.\n *\n * This file contains the source-to-XML conversion used by the TABL handler.\n * It is intentionally separate from the handler definition file, which keeps\n * the handler surface focused on schema mapping (`toAbapGit`/`fromAbapGit`).\n */\n\nimport {\n parse,\n type TableDefinition,\n type StructureDefinition,\n} from '@abapify/acds';\nimport { tablesettings, type InferTypedSchema } from '@abapify/adt-schemas';\nimport type { FormatSerializeOptions } from '@abapify/adt-plugin';\nimport { AdkTable, AdkStructure } from '../adk';\nimport { tabl } from '../../../schemas/generated';\nimport { SerializedFile } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\nimport { buildDD02V, buildDD03P } from '../cds-to-abapgit';\nimport type { TypeResolver, ResolvedType } from '../cds-to-abapgit';\nimport { formatAbapGitXml } from '../xml-format';\n\nconst XML_NAMED_ENTITIES: Record<string, string> = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n};\n\nfunction decodeNumericCode(decimal?: string, hex?: string): string {\n const base = decimal !== undefined ? 10 : 16;\n const value = decimal !== undefined ? decimal : (hex ?? '');\n return String.fromCharCode(parseInt(value, base));\n}\n\nfunction decodeXmlEntities(text: string): string {\n return text.replace(\n /&(?:#(\\d+)|#x([0-9a-fA-F]+)|([a-zA-Z][a-zA-Z0-9]*));/g,\n (match, decimal, hex, name) =>\n decimal !== undefined || hex !== undefined\n ? decodeNumericCode(decimal, hex)\n : (XML_NAMED_ENTITIES[name] ?? match),\n );\n}\n\n/**\n * Strip undefined/empty-string values from an object\n * to avoid emitting empty XML elements\n */\nfunction stripEmpty<T extends object>(obj: T): Partial<T> {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== undefined && value !== '') {\n result[key] = value;\n }\n }\n return result as Partial<T>;\n}\n\ntype TableSettings = Extract<\n InferTypedSchema<typeof tablesettings>,\n { tableSettings: unknown }\n>['tableSettings'];\n\n/**\n * Parse ADT table settings XML into DD09L data for abapGit serialization.\n */\nfunction parseSettingsToDD09L(\n settingsXml: string,\n def: TableDefinition | StructureDefinition,\n): Record<string, string> | undefined {\n let settings: TableSettings;\n try {\n const parsed = tablesettings.parse(settingsXml);\n if (!('tableSettings' in parsed)) return undefined;\n settings = parsed.tableSettings;\n } catch {\n return undefined;\n }\n\n const dd09l: Record<string, string | undefined> = {\n TABNAME: def.name.toUpperCase(),\n AS4LOCAL: 'A',\n TABKAT: settings.sizeCategory,\n TABART: settings.dataClassCategory,\n BUFALLOW: settings.buffering?.allowed,\n PUFFERUNG: settings.buffering?.type as string | undefined,\n SCHFELDANZ:\n settings.buffering?.areaKeyFields &&\n settings.buffering.areaKeyFields !== '0'\n ? settings.buffering.areaKeyFields\n : undefined,\n PROTOKOLL: settings.loggingEnabled ? 'X' : undefined,\n };\n\n return stripEmpty(dd09l) as Record<string, string>;\n}\n\n/**\n * Create a TypeResolver that resolves named types via ADT endpoints.\n */\nfunction resolveReferencedType(xml: string, comptype: 'E' | 'S'): ResolvedType {\n const result: ResolvedType = { comptype };\n if (\n comptype === 'E' &&\n /<dtel:searchHelp>[^<]+<\\/dtel:searchHelp>/.test(xml)\n ) {\n result.shlporigin = 'D';\n }\n const descMatch = xml.match(/adtcore:description=\"([^\"]+)\"/);\n if (descMatch) result.description = decodeXmlEntities(descMatch[1]);\n return result;\n}\n\nfunction createAdtTypeResolver(obj: AdkTable | AdkStructure): TypeResolver {\n const cache = new Map<string, ResolvedType>();\n\n return {\n async resolve(name: string): Promise<ResolvedType> {\n const key = name.toLowerCase();\n const cached = cache.get(key);\n if (cached) return cached;\n\n const dtelXml = await obj.fetchText(\n `/sap/bc/adt/ddic/dataelements/${encodeURIComponent(key)}`,\n );\n if (dtelXml) {\n const result = resolveReferencedType(dtelXml, 'E');\n cache.set(key, result);\n return result;\n }\n\n const structXml = await obj.fetchText(\n `/sap/bc/adt/ddic/structures/${encodeURIComponent(key)}`,\n );\n const result = structXml\n ? resolveReferencedType(structXml, 'S')\n : { comptype: 'E' as const };\n cache.set(key, result);\n return result;\n },\n };\n}\n\nasync function resolveCdsSource<T extends AdkTable | AdkStructure>(\n obj: T,\n sources: Readonly<Record<string, string>> | undefined,\n): Promise<{ source: string } | { fallback: true }> {\n if (sources !== undefined) {\n // An explicit source map is authoritative. If it does not contain the\n // `main` component, we emit metadata only rather than falling back to the\n // current mutable SAP source.\n if (sources.main === undefined) {\n return { fallback: true };\n }\n return { source: sources.main };\n }\n try {\n return { source: await obj.getSource() };\n } catch {\n return { fallback: true };\n }\n}\n\nfunction createFallbackFile<T extends AdkTable | AdkStructure>(\n obj: T,\n ctx: {\n getObjectName: (obj: T) => string;\n toAbapGitXml: (obj: T) => string;\n createFile: (path: string, content: string) => SerializedFile;\n },\n): SerializedFile[] {\n const objectName = ctx.getObjectName(obj);\n return [ctx.createFile(`${objectName}.tabl.xml`, ctx.toAbapGitXml(obj))];\n}\n\nasync function buildTablValues<T extends AdkTable | AdkStructure>(\n obj: T,\n def: TableDefinition | StructureDefinition,\n): Promise<Record<string, unknown>> {\n const lang = isoToSapLang(obj.language || undefined);\n const dd02v = buildDD02V(def, lang, obj.description ?? '');\n const resolver = createAdtTypeResolver(obj);\n const dd03pEntries = await buildDD03P(\n def.members,\n def.name.toUpperCase(),\n resolver,\n );\n\n const values: Record<string, unknown> = { DD02V: stripEmpty(dd02v) };\n\n if ('getSettings' in obj && typeof obj.getSettings === 'function') {\n try {\n const settingsXml = await (obj as AdkTable).getSettings();\n if (settingsXml) {\n const dd09l = parseSettingsToDD09L(settingsXml, def);\n if (dd09l) values.DD09L = stripEmpty(dd09l);\n }\n } catch {\n // Settings not available, skip DD09L\n }\n }\n\n if (dd03pEntries.length > 0) {\n values.DD03P_TABLE = {\n DD03P: dd03pEntries.map((entry) => stripEmpty(entry)),\n };\n }\n\n return values;\n}\n\nfunction buildTablXml<T extends AdkTable | AdkStructure>(\n obj: T,\n ctx: {\n getObjectName: (obj: T) => string;\n },\n values: Record<string, unknown>,\n): string {\n const fullPayload = {\n abap: { version: '1.0', values },\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TABL',\n serializer_version: 'v1.0.0',\n };\n\n return formatAbapGitXml(tabl.build(fullPayload as any, { pretty: true }));\n}\n\nexport async function serializeTabl<T extends AdkTable | AdkStructure>(\n obj: T,\n ctx: {\n getObjectName: (obj: T) => string;\n toAbapGitXml: (obj: T) => string;\n createFile: (path: string, content: string) => SerializedFile;\n },\n options?: FormatSerializeOptions,\n): Promise<SerializedFile[]> {\n const objectName = ctx.getObjectName(obj);\n\n const resolved = await resolveCdsSource(\n obj,\n options?.sources as Readonly<Record<string, string>> | undefined,\n );\n if ('fallback' in resolved) return createFallbackFile(obj, ctx);\n\n const { ast, errors } = parse(resolved.source);\n if (errors.length > 0 || ast.definitions.length === 0) {\n return createFallbackFile(obj, ctx);\n }\n\n const def = ast.definitions[0] as TableDefinition | StructureDefinition;\n const values = await buildTablValues(obj, def);\n const xml = buildTablXml(obj, ctx, values);\n return [ctx.createFile(`${objectName}.tabl.xml`, xml)];\n}\n\nexport function fromAbapGitTabl({ DD02V }: any = {}) {\n return {\n name: (DD02V?.TABNAME ?? '').toUpperCase(),\n type: DD02V?.TABCLASS === 'INTTAB' ? 'TABL/DS' : 'TABL/DT',\n description: DD02V?.DDTEXT,\n language: sapLangToIso(DD02V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD02V?.DDLANGUAGE),\n } as { name: string } & Record<string, unknown>;\n}\n","/**\n * Table/Structure (TABL) object handlers for abapGit format\n *\n * Serializes SAP tables (TABL/DT) and structures (TABL/DS) to\n * abapGit-compatible XML format by fetching the CDS-style source code\n * from SAP, parsing it with @abapify/acds, and mapping the AST into\n * DD02V/DD03P structures.\n *\n * Tables and structures share the same serialization logic but use\n * different ADT endpoints (ddic/tables vs ddic/structures).\n *\n * Data sources:\n * - blueSource GET: name, type, description, language\n * - source/main GET: CDS source with annotations and field definitions\n * → parsed via @abapify/acds into AST\n * → mapped into DD02V annotations and DD03P field entries\n * - Per named type: /sap/bc/adt/ddic/dataelements/{name} or /structures/{name}\n * → resolves COMPTYPE (E vs S), SHLPORIGIN, description (DDTEXT)\n */\n\nimport { AdkTable, AdkStructure } from '../adk';\nimport { tabl } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { isoToSapLang } from '../lang';\nimport { serializeTabl, fromAbapGitTabl } from './tabl-serialize';\n\nexport const tableHandler = createHandler(AdkTable, {\n schema: tabl,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TABL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DD02V: {\n TABNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(obj.language || undefined),\n TABCLASS: 'TRANSP',\n DDTEXT: obj.description ?? '',\n },\n }),\n\n serialize: (obj, ctx, options) => serializeTabl(obj, ctx, options),\n fromAbapGit: fromAbapGitTabl,\n});\n\nexport const structureHandler = createHandler(AdkStructure, {\n schema: tabl,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TABL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DD02V: {\n TABNAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(obj.language || undefined),\n TABCLASS: 'INTTAB',\n DDTEXT: obj.description ?? '',\n },\n }),\n\n serialize: (obj, ctx, options) => serializeTabl(obj, ctx, options),\n fromAbapGit: fromAbapGitTabl,\n});\n","/**\n * Table Type (TTYP) object handler for abapGit format\n *\n * Maps between abapGit DD40V codes and ADT API enum values.\n */\n\nimport { AdkTableType } from '../adk';\nimport { ttyp } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport {\n isoToSapLang,\n sapLangToIso,\n abapLangVerToAdt,\n abapLangVerFromAdt,\n} from '../lang';\n\n// ============================================\n// DD40V ↔ ADT API enum mappings\n// ============================================\n\n/** DD40V ACCESSMODE → ADT accessType */\nconst ACCESS_MODE_TO_ADT: Record<string, string> = {\n T: 'standard',\n S: 'sorted',\n H: 'hashed',\n};\nconst ACCESS_MODE_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(ACCESS_MODE_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/** DD40V KEYDEF → ADT primaryKey.definition */\nconst KEY_DEF_TO_ADT: Record<string, string> = {\n D: 'standard',\n K: 'keyComponents',\n T: 'rowType',\n};\nconst KEY_DEF_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(KEY_DEF_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/** DD40V KEYKIND → ADT primaryKey.kind */\nconst KEY_KIND_TO_ADT: Record<string, string> = {\n N: 'nonUnique',\n U: 'unique',\n G: 'notSpecified',\n};\nconst KEY_KIND_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(KEY_KIND_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * DD40V ROWKIND → ADT rowType.typeKind\n *\n * ROWKIND='' (empty) + DATATYPE set → predefinedAbapType (built-in like STRING, INT4)\n * ROWKIND='S' → dictionaryType (references a structure/table/data element)\n * ROWKIND='R' → ref type\n */\nconst ROW_KIND_TO_ADT: Record<string, string> = {\n '': 'predefinedAbapType',\n S: 'dictionaryType',\n R: 'refToDictionaryType',\n};\nconst ROW_KIND_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(ROW_KIND_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * DD40V DATATYPE (DDIC code) → ADT builtInType.dataType (ABAP type name)\n *\n * abapGit stores 4-char DDIC internal codes (e.g. STRG, RSTR).\n * SAP ADT REST API uses ABAP type names (e.g. STRING, XSTRING).\n * Most types use the same name in both (CHAR, NUMC, INT4, etc.);\n * only a few differ.\n */\nconst DATATYPE_TO_ADT: Record<string, string> = {\n STRG: 'STRING',\n SSTR: 'SSTRING',\n RSTR: 'XSTRING',\n UTCL: 'UTCLONG',\n};\nconst DATATYPE_FROM_ADT: Record<string, string> = Object.fromEntries(\n Object.entries(DATATYPE_TO_ADT).map(([k, v]) => [v, k]),\n);\n\n/**\n * DD40V TYPELEN — fixed internal byte length for predefined types.\n *\n * Variable-length types (STRING, XSTRING) have a fixed pointer size (8 bytes)\n * that abapGit stores as TYPELEN. This is not the same as LENG (display length).\n * We only need to emit TYPELEN for types that have noLeng=true (no external LENG).\n */\nconst FIXED_TYPELEN: Record<string, number> = {\n STRG: 8,\n RSTR: 8,\n};\n\n// ============================================\n// Handler\n// ============================================\n\nexport const tableTypeHandler = createHandler(AdkTableType, {\n schema: ttyp,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TTYP',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const data = obj.dataSync;\n const accessMode =\n ACCESS_MODE_FROM_ADT[data?.accessType ?? ''] ?? data?.accessType ?? '';\n const keyDef =\n KEY_DEF_FROM_ADT[data?.primaryKey?.definition ?? ''] ??\n data?.primaryKey?.definition ??\n '';\n const keyKind =\n KEY_KIND_FROM_ADT[data?.primaryKey?.kind ?? ''] ??\n data?.primaryKey?.kind ??\n '';\n const rowKind =\n ROW_KIND_FROM_ADT[data?.rowType?.typeKind ?? ''] ??\n data?.rowType?.typeKind ??\n '';\n\n // Map ADT dataType (STRING) → DDIC code (STRG)\n const adtDataType = data?.rowType?.builtInType?.dataType ?? '';\n const ddicDataType = DATATYPE_FROM_ADT[adtDataType] ?? adtDataType;\n\n // TYPELEN: fixed internal byte length for variable-length types (STRING, XSTRING)\n const typeLen = FIXED_TYPELEN[ddicDataType];\n\n return {\n DD40V: {\n TYPENAME: obj.name ?? '',\n DDLANGUAGE: isoToSapLang(data?.language || undefined),\n ROWTYPE: data?.rowType?.typeName || undefined,\n ROWKIND: rowKind || undefined,\n DATATYPE: ddicDataType,\n LENG: data?.rowType?.builtInType?.length\n ? String(data.rowType.builtInType.length).padStart(6, '0')\n : undefined,\n DECIMALS: data?.rowType?.builtInType?.decimals\n ? String(data.rowType.builtInType.decimals).padStart(6, '0')\n : undefined,\n ACCESSMODE: accessMode,\n KEYDEF: keyDef,\n KEYKIND: keyKind,\n DDTEXT: obj.description ?? '',\n TYPELEN: typeLen ? String(typeLen).padStart(6, '0') : undefined,\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(data?.abapLanguageVersion),\n },\n };\n },\n\n fromAbapGit: ({ DD40V }) => {\n const accessType =\n ACCESS_MODE_TO_ADT[DD40V?.ACCESSMODE ?? ''] ?? DD40V?.ACCESSMODE;\n const keyDef = KEY_DEF_TO_ADT[DD40V?.KEYDEF ?? ''] ?? DD40V?.KEYDEF;\n const keyKind = KEY_KIND_TO_ADT[DD40V?.KEYKIND ?? ''] ?? DD40V?.KEYKIND;\n const rowKind = ROW_KIND_TO_ADT[DD40V?.ROWKIND ?? ''] ?? DD40V?.ROWKIND;\n\n // Map DDIC code (STRG) → ADT dataType (STRING)\n const ddicCode = DD40V?.DATATYPE ?? '';\n const adtDataType = DATATYPE_TO_ADT[ddicCode] ?? ddicCode;\n\n // For predefinedAbapType (built-in), typeName should be empty\n // For dictionaryType, typeName is the referenced type name\n const isPredefined = rowKind === 'predefinedAbapType';\n\n return {\n name: (DD40V?.TYPENAME ?? '').toUpperCase(),\n type: 'TTYP/DA',\n description: DD40V?.DDTEXT,\n language: sapLangToIso(DD40V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD40V?.DDLANGUAGE),\n abapLanguageVersion: abapLangVerToAdt(DD40V?.ABAP_LANGUAGE_VERSION),\n rowType: {\n typeKind: rowKind,\n typeName: isPredefined ? '' : DD40V?.ROWTYPE || '',\n // SAP's strict xs:sequence parser requires builtInType element\n // to be present even when logically empty (e.g. refToDictionaryType).\n // Default all fields to avoid \"expected element builtInType\" errors.\n builtInType: {\n dataType: ddicCode ? adtDataType : '',\n length: DD40V?.LENG ? Number(DD40V.LENG) : 0,\n decimals: DD40V?.DECIMALS ? Number(DD40V.DECIMALS) : 0,\n },\n rangeType: '',\n },\n accessType,\n primaryKey: {\n definition: keyDef,\n kind: keyKind,\n components: { component: [] },\n alias: '',\n },\n secondaryKeys: {\n allowed: 'notSpecified',\n },\n } as { name: string } & Record<string, unknown>;\n },\n});\n","import { FormatMaterializationError } from '@abapify/adt-plugin';\nimport type { SerializedFile } from './base';\n\ntype SourceObject = { getSource?: () => Promise<string> | string };\n\n/**\n * Resolve the `main` source component for an AFF source handler.\n *\n * If `sources` is supplied, only the `main` key is accepted — any other\n * key throws `FORMAT_SOURCE_COMPONENT_UNSUPPORTED`. When `sources` is\n * absent, falls back to `object.getSource()`.\n */\nexport async function resolveMainSource(\n object: SourceObject,\n sources: Readonly<Record<string, string | undefined>> | undefined,\n typeLabel: string,\n): Promise<string | undefined> {\n if (sources !== undefined) {\n const keys = Object.keys(sources);\n if (keys.some((key) => key !== 'main')) {\n throw new FormatMaterializationError(\n 'FORMAT_SOURCE_COMPONENT_UNSUPPORTED',\n `${typeLabel} only supports the 'main' source component; received ${keys.join(', ')}.`,\n );\n }\n return sources.main;\n }\n return typeof object.getSource === 'function' ? await object.getSource() : '';\n}\n\n/**\n * Build an AFF JSON metadata file. `extra` fields are merged at the\n * top level alongside `formatVersion` and `header`.\n */\nexport function buildAffJson(\n description: string,\n originalLanguage: string,\n abapLanguageVersion: string | undefined,\n extra: Record<string, unknown> = {},\n): string {\n return `${JSON.stringify(\n {\n formatVersion: '1',\n header: {\n description,\n originalLanguage: originalLanguage.toLowerCase(),\n ...(abapLanguageVersion ? { abapLanguageVersion } : {}),\n },\n ...extra,\n },\n null,\n 2,\n )}\\n`;\n}\n\n/**\n * Create the source file for an AFF handler if the source should be\n * included. Returns an empty array if the source is absent or empty.\n */\nexport function createAffSourceFile(\n ctx: {\n getObjectName: (obj: unknown) => string;\n fileExtension: string;\n createFile: (path: string, content: string) => SerializedFile;\n },\n params: {\n object: unknown;\n source: string | undefined;\n suppliedSource: string | undefined;\n sourceExt: string;\n },\n): SerializedFile[] {\n if (params.source === undefined) return [];\n if (params.suppliedSource === undefined && params.source === '') return [];\n const name = ctx.getObjectName(params.object);\n return [\n ctx.createFile(\n `${name}.${ctx.fileExtension}.${params.sourceExt}`,\n params.source,\n ),\n ];\n}\n\n/**\n * Full serialize implementation for AFF source handlers.\n *\n * Handles the complete source+metadata file layout in one call:\n * `<name>.<ext>.<sourceExt>` — source text (when included)\n * `<name>.<jsonExt>` — metadata JSON\n *\n * `extra` is merged into the JSON body for handler-specific fields\n * (e.g. SRVD's `generalInformation`, DDLS's `sourceOrigin`).\n */\nexport async function serializeAffSource(\n object: SourceObject & {\n name: string;\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n },\n ctx: {\n getObjectName: (obj: unknown) => string;\n fileExtension: string;\n createFile: (path: string, content: string) => SerializedFile;\n },\n options: Readonly<Record<string, string | undefined>> | undefined,\n config: {\n typeLabel: string;\n sourceExt: string;\n jsonExt: string;\n extra?: Record<string, unknown>;\n },\n): Promise<SerializedFile[]> {\n const source = await resolveMainSource(object, options, config.typeLabel);\n const name = ctx.getObjectName(object);\n return [\n ...createAffSourceFile(ctx, {\n object,\n source,\n suppliedSource: options?.main,\n sourceExt: config.sourceExt,\n }),\n ctx.createFile(\n `${name}.${config.jsonExt}`,\n buildAffJson(\n object.description || String(object.name ?? ''),\n object.originalLanguage ?? 'en',\n object.abapLanguageVersion,\n config.extra,\n ),\n ),\n ];\n}\n\n/**\n * Shared `getSource` handler function for source-driven AFF objects\n * (BDEF, SRVD). Delegates to `obj.getSource()` when available.\n */\nexport function affGetSource(obj: SourceObject): Promise<string> {\n return typeof obj?.getSource === 'function'\n ? Promise.resolve(obj.getSource())\n : Promise.resolve('');\n}\n\n/**\n * Shared `fromAbapGit` handler function for source-driven AFF objects.\n * Extracts the uppercased name from the SKEY envelope.\n */\nexport function affFromAbapGit(SKEY: { NAME?: string } | undefined): {\n name: string;\n} {\n return { name: String(SKEY?.NAME ?? '').toUpperCase() };\n}\n\n/**\n * Shared `setSources` handler function for source-driven AFF objects.\n * Stores the `main` source on a `_pendingSource` property.\n */\nexport function affSetSources(obj: unknown, sources: { main?: string }): void {\n if (sources.main !== undefined) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n}\n\n/**\n * Shared `fromAffJson` handler function for source-driven AFF objects.\n * Extracts the object name from the JSON header or falls back to the\n * filename-derived name passed in. The AFF JSON format stores the\n * description in `header.description` and the original language in\n * `header.originalLanguage`. Both are preserved for round-trip fidelity.\n */\nexport function affFromAffJson(\n json: Record<string, unknown>,\n fallbackName: string,\n): {\n name: string;\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n} {\n const header = json.header as\n | {\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n }\n | undefined;\n return {\n name: fallbackName,\n description: header?.description,\n originalLanguage: header?.originalLanguage,\n abapLanguageVersion: header?.abapLanguageVersion,\n };\n}\n\n/**\n * Dual-format serialize for objects that support both AFF JSON and legacy XML.\n *\n * When `options.format === 'legacy'`, produces a legacy abapGit XML metadata\n * file (via `ctx.toAbapGitXml`) plus the source file. Otherwise (default or\n * `format === 'aff'`), delegates to `serializeAffSource` to produce the AFF\n * JSON sidecar plus source.\n */\nexport async function serializeDualFormat(\n object: SourceObject & {\n name: string;\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n },\n ctx: {\n getObjectName: (obj: unknown) => string;\n fileExtension: string;\n createFile: (path: string, content: string) => SerializedFile;\n toAbapGitXml: (obj: unknown) => string;\n },\n options: import('@abapify/adt-plugin').FormatSerializeOptions | undefined,\n config: {\n typeLabel: string;\n sourceExt: string;\n jsonExt: string;\n extra?: Record<string, unknown>;\n },\n): Promise<SerializedFile[]> {\n // Legacy XML format: produce .xml metadata + source file\n if (options?.format === 'legacy') {\n const source = await resolveMainSource(\n object,\n options?.sources,\n config.typeLabel,\n );\n const name = ctx.getObjectName(object);\n const files: SerializedFile[] = [];\n // Source file — preserve explicitly supplied empty source (authoritative\n // sources contract). Only skip when source is genuinely absent.\n if (source !== undefined) {\n files.push(\n ctx.createFile(\n `${name}.${ctx.fileExtension}.${config.sourceExt}`,\n source,\n ),\n );\n }\n // Legacy XML metadata\n files.push(\n ctx.createFile(\n `${name}.${ctx.fileExtension}.xml`,\n ctx.toAbapGitXml(object),\n ),\n );\n return files;\n }\n\n // Default: AFF JSON format\n return serializeAffSource(object, ctx, options?.sources, config);\n}\n","/**\n * BDEF (RAP Behavior Definition) object handler for abapGit format\n *\n * BDEF is source-driven: the semantic content lives in an `.abdl` file.\n * Supports BOTH formats:\n * - AFF (default): `.bdef.abdl` source + `.bdef.json` metadata sidecar\n * - Legacy XML: `.bdef.abdl` source + `.bdef.xml` metadata\n *\n * File layout (AFF):\n * src/zbp_foo.bdef.abdl — behavior source text\n * src/zbp_foo.bdef.json — ABAP File Formats metadata\n *\n * File layout (legacy):\n * src/zbp_foo.bdef.abdl — behavior source text\n * src/zbp_foo.bdef.xml — legacy abapGit XML metadata\n */\n\nimport { bdef } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport {\n serializeDualFormat,\n affGetSource,\n affFromAbapGit,\n affSetSources,\n affFromAffJson,\n} from '../source-resolver';\nimport type { FormatSerializeOptions } from '@abapify/adt-plugin';\n\ntype BdefLike = {\n name: string;\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n getSource?: () => Promise<string> | string;\n};\n\nexport const behaviorDefinitionHandler = createHandler<BdefLike, typeof bdef>(\n 'BDEF',\n {\n schema: bdef,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_BDEF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<BdefLike>(raw);\n return {\n SKEY: {\n TYPE: 'BDEF',\n NAME: String(obj?.name ?? '').toUpperCase(),\n },\n };\n },\n\n getSource: affGetSource,\n fromAbapGit: ({ SKEY }) => affFromAbapGit(SKEY),\n fromAffJson: (json) => affFromAffJson(json, ''),\n\n serialize: (object, ctx, options?: FormatSerializeOptions) =>\n serializeDualFormat(object, ctx, options, {\n typeLabel: 'BDEF',\n sourceExt: 'abdl',\n jsonExt: `${ctx.fileExtension}.json`,\n }),\n\n setSources: affSetSources,\n },\n);\n","/**\n * SRVD (RAP Service Definition) object handler for abapGit format\n *\n * SRVD is source-driven: the semantic content lives in an `.acds` file.\n * Supports BOTH formats:\n * - AFF (default): `.srvd.acds` source + `.srvd.json` metadata sidecar\n * - Legacy XML: `.srvd.acds` source + `.srvd.xml` metadata\n *\n * File layout (AFF):\n * src/zui_foo.srvd.acds — service source text\n * src/zui_foo.srvd.json — ABAP File Formats metadata\n *\n * File layout (legacy):\n * src/zui_foo.srvd.acds — service source text\n * src/zui_foo.srvd.xml — legacy abapGit XML metadata\n */\n\nimport { srvd } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport {\n serializeDualFormat,\n affGetSource,\n affFromAbapGit,\n affSetSources,\n affFromAffJson,\n} from '../source-resolver';\nimport type { FormatSerializeOptions } from '@abapify/adt-plugin';\n\ntype SrvdLike = {\n name: string;\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n sourceOrigin?: string;\n sourceType?: string;\n getSource?: () => Promise<string> | string;\n};\n\nexport const serviceDefinitionHandler = createHandler<SrvdLike, typeof srvd>(\n 'SRVD',\n {\n schema: srvd,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SRVD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SrvdLike>(raw);\n return {\n SKEY: {\n TYPE: 'SRVD',\n NAME: String(obj?.name ?? '').toUpperCase(),\n },\n };\n },\n\n getSource: affGetSource,\n fromAbapGit: ({ SKEY }) => affFromAbapGit(SKEY),\n fromAffJson: (json) => ({\n ...affFromAffJson(json, ''),\n // Preserve SRVD-specific metadata for round-trip\n sourceOrigin: (json as { generalInformation?: { sourceOrigin?: string } })\n ?.generalInformation?.sourceOrigin,\n sourceType: (json as { generalInformation?: { sourceType?: string } })\n ?.generalInformation?.sourceType,\n }),\n\n serialize: (object, ctx, options?: FormatSerializeOptions) =>\n serializeDualFormat(object, ctx, options, {\n typeLabel: 'SRVD',\n sourceExt: 'acds',\n jsonExt: `${ctx.fileExtension}.json`,\n extra: {\n generalInformation: {\n sourceOrigin: object.sourceOrigin ?? 'abapDevelopmentTools',\n sourceType: object.sourceType ?? 'definition',\n },\n },\n }),\n\n setSources: affSetSources,\n },\n);\n","/**\n * SRVB (RAP Service Binding) object handler for abapGit format\n *\n * Unlike BDEF/SRVD, SRVB is **metadata-only** — there is no source text.\n * Supports BOTH formats:\n * - Legacy XML (default): `<name>.srvb.xml` with SKEY + BINDING block\n * - AFF JSON: `<name>.srvb.json` with formatVersion + header\n *\n * File layout (legacy):\n * src/zui_foo.srvb.xml — metadata only\n *\n * File layout (AFF):\n * src/zui_foo.srvb.json — metadata only\n *\n * Mirrors the minimal-block approach used by\n * zcl_abapgit_object_srvb (abapGit upstream serialiser).\n */\n\nimport { srvb } from '../../../schemas/generated';\nimport { createHandler, type SerializedFile, unwrapData } from '../base';\nimport { buildAffJson } from '../source-resolver';\nimport type { FormatSerializeOptions } from '@abapify/adt-plugin';\n\n// SRVB is not derived from AdkObject — we cast to the minimal handler shape\n// via the string form of createHandler.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SrvbLike = any;\n\nexport const serviceBindingHandler = createHandler<SrvbLike, typeof srvb>(\n 'SRVB',\n {\n schema: srvb,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SRVB',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SrvbLike>(raw);\n return {\n SKEY: {\n TYPE: 'SRVB',\n NAME: String(obj?.name ?? '').toUpperCase(),\n },\n BINDING: {\n TYPE: 'odataV4',\n VERSION: '4',\n CATEGORY: 'odata_v4_ui',\n },\n };\n },\n\n fromAbapGit: ({ SKEY }) => ({\n name: String(SKEY?.NAME ?? '').toUpperCase(),\n }),\n\n fromAffJson: (json) => {\n const header = (\n json as {\n header?: {\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n };\n }\n )?.header;\n const binding = (\n json as {\n binding?: {\n bindingType?: string;\n bindingTypeCategory?: string;\n services?: unknown[];\n };\n }\n )?.binding;\n return {\n // Filename-derived name (injected by deserializer)\n name: '',\n description: header?.description,\n originalLanguage: header?.originalLanguage,\n abapLanguageVersion: header?.abapLanguageVersion,\n // Preserve binding metadata for round-trip\n bindingType: binding?.bindingType,\n bindingTypeCategory: binding?.bindingTypeCategory,\n services: binding?.services,\n };\n },\n\n // Metadata-only: emit either .xml (legacy) or .json (AFF) depending on format option.\n async serialize(\n object,\n ctx,\n options?: FormatSerializeOptions,\n ): Promise<SerializedFile[]> {\n const objectName = ctx.getObjectName(object);\n\n // AFF JSON format\n if (options?.format === 'aff') {\n const bindingType = String(\n object?.bindingType ?? object?.data?.bindingType ?? 'odataV4',\n );\n const bindingTypeCategory = String(\n object?.bindingTypeCategory ??\n object?.data?.bindingTypeCategory ??\n 'odata_v4_ui',\n );\n const services = object?.services ?? object?.data?.services ?? [];\n const jsonContent = buildAffJson(\n String(object?.description ?? object?.name ?? ''),\n String(object?.originalLanguage ?? 'en'),\n object?.abapLanguageVersion,\n {\n binding: {\n bindingType,\n bindingTypeCategory,\n ...(Array.isArray(services) && services.length > 0\n ? { services }\n : {}),\n },\n },\n );\n return [\n ctx.createFile(\n `${objectName}.${ctx.fileExtension}.json`,\n jsonContent,\n ),\n ];\n }\n\n // Default: legacy XML format\n const xmlContent = ctx.toAbapGitXml(object);\n return [\n ctx.createFile(`${objectName}.${ctx.fileExtension}.xml`, xmlContent),\n ];\n },\n },\n);\n","import { bdef } from '../../../schemas/generated';\nimport { createHandler, type AbapGitSchema, unwrapData } from '../base';\nimport {\n serializeDualFormat,\n affGetSource,\n affFromAbapGit,\n affSetSources,\n affFromAffJson,\n} from '../source-resolver';\nimport type { FormatSerializeOptions } from '@abapify/adt-plugin';\n\ntype CdsAffSourceObject = {\n name: string;\n description?: string;\n originalLanguage?: string;\n abapLanguageVersion?: string;\n getSource?: () => Promise<string> | string;\n};\n\ntype CdsAffSourceOptions = {\n /** Override the default bdef schema (for types with their own XSD) */\n schema?: AbapGitSchema;\n /** Extra AFF fields to include in fromAffJson (e.g. sourceOrigin, sourceType) */\n fromAffJsonExtra?: (json: Record<string, unknown>) => Record<string, unknown>;\n /** Extra fields to pass to serializeDualFormat, computed from the object */\n serializeExtra?: (\n object: CdsAffSourceObject & Record<string, unknown>,\n ) => Record<string, unknown>;\n};\n\n/** Create the shared dual-format source-and-metadata layout used by CDS source types.\n * Supports both AFF JSON (default) and legacy abapGit XML metadata. */\nexport function createCdsAffSourceHandler(\n type: string,\n options?: CdsAffSourceOptions,\n) {\n const schema = options?.schema ?? bdef;\n return createHandler<CdsAffSourceObject, typeof schema>(type, {\n schema,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n toAbapGit: (raw) => {\n const obj = unwrapData<CdsAffSourceObject>(raw);\n return {\n SKEY: { TYPE: type, NAME: String(obj?.name ?? '').toUpperCase() },\n };\n },\n getSource: affGetSource,\n fromAbapGit: ({ SKEY }) => affFromAbapGit(SKEY),\n fromAffJson: (json) =>\n options?.fromAffJsonExtra\n ? { ...affFromAffJson(json, ''), ...options.fromAffJsonExtra(json) }\n : affFromAffJson(json, ''),\n setSources: affSetSources,\n serialize: (object, ctx, opts?: FormatSerializeOptions) =>\n serializeDualFormat(object, ctx, opts, {\n typeLabel: type,\n sourceExt: 'acds',\n jsonExt: `${ctx.fileExtension}.json`,\n extra: options?.serializeExtra?.(object),\n }),\n });\n}\n","/**\n * DCLS (ABAP Data Control Language Source) object handler for abapGit format\n *\n * DCLS is source-driven: the semantic content lives in an `.acds` file.\n * Supports BOTH formats:\n * - AFF (default): `.dcls.acds` source + `.dcls.json` metadata sidecar\n * - Legacy XML: `.dcls.acds` source + `.dcls.xml` metadata\n */\n\nimport { dcls } from '../../../schemas/generated';\nimport { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const dclSourceHandler = createCdsAffSourceHandler('DCLS', {\n schema: dcls,\n});\n","/**\n * DDLS (Data Definition Language Source) object handler for abapGit format\n *\n * DDLS is source-driven: the semantic content lives in an `.acds` file.\n * Supports BOTH formats:\n * - AFF (default): `.ddls.acds` source + `.ddls.json` metadata sidecar\n * - Legacy XML: `.ddls.acds` source + `.ddls.xml` metadata\n */\n\nimport { ddls } from '../../../schemas/generated';\nimport { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const ddlSourceHandler = createCdsAffSourceHandler('DDLS', {\n schema: ddls,\n fromAffJsonExtra: (json) => ({\n sourceOrigin: (json as { sourceOrigin?: string })?.sourceOrigin,\n sourceType: (json as { sourceType?: string })?.sourceType,\n }),\n serializeExtra: (object) => ({\n sourceOrigin: object.sourceOrigin ?? 'abapDevelopmentTools',\n sourceType: object.sourceType ?? 'unknown',\n }),\n});\n","/**\n * DDLX (CDS Metadata Extension) object handler for abapGit format\n *\n * DDLX is source-driven: the semantic content lives in an `.acds` file.\n * Supports BOTH formats:\n * - AFF (default): `.ddlx.acds` source + `.ddlx.json` metadata sidecar\n * - Legacy XML: `.ddlx.acds` source + `.ddlx.xml` metadata\n */\n\nimport { ddlx } from '../../../schemas/generated';\nimport { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const ddlExtensionHandler = createCdsAffSourceHandler('DDLX', {\n schema: ddlx,\n});\n","/**\n * MSAG (Message Class) object handler for abapGit format\n *\n * Message classes are XML-only (no source code). The abapGit format stores\n * the class header in T100A and the individual message lines in the T100\n * table (wrapped in <item> elements).\n */\n\nimport { msag } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype MessageClassLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n messages?: Array<{\n number?: string;\n text?: string;\n language?: string;\n }>;\n};\n\nexport const messageClassHandler = createHandler<MessageClassLike, typeof msag>(\n 'MSAG',\n {\n schema: msag,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_MSAG',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<MessageClassLike>(raw);\n\n const messages = obj.messages ?? [];\n return {\n T100A: {\n ARBGB: String(obj.name ?? '').toUpperCase(),\n MASTERLANG: isoToSapLang(obj.masterLanguage || obj.language),\n STEXT: obj.description ?? '',\n },\n T100:\n messages.length > 0\n ? {\n item: messages.map((m) => ({\n SPRSL: isoToSapLang(\n m.language || obj.masterLanguage || obj.language,\n ),\n ARBGB: String(obj.name ?? '').toUpperCase(),\n MSGNR: String(m.number ?? '').padStart(3, '0'),\n TEXT: m.text ?? '',\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ T100A, T100 }) => {\n const rawItems = T100?.item ?? [];\n const items = Array.isArray(rawItems) ? rawItems : [rawItems];\n return {\n name: (T100A?.ARBGB ?? '').toUpperCase(),\n type: 'MSAG/MS',\n description: T100A?.STEXT,\n language: sapLangToIso(T100A?.MASTERLANG),\n masterLanguage: sapLangToIso(T100A?.MASTERLANG),\n messages: items.map((m) => ({\n number: m.MSGNR ?? '',\n text: m.TEXT ?? '',\n language: sapLangToIso(m.SPRSL),\n })),\n } as { name: string } & Record<string, unknown>;\n },\n },\n);\n","/**\n * VIEW (Database View) object handler for abapGit format\n *\n * Database views are XML-only (no source code). The abapGit format stores\n * the view header in DD25V, table assignments in DD26V_TABLE, view fields\n * in DD27P_TABLE and selection conditions in DD28V_TABLE.\n */\n\nimport { view } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype ViewLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n viewClass?: string;\n baseTable?: string;\n baseTableField?: string;\n tables?: Array<{\n tableName?: string;\n position?: string;\n foreignView?: string;\n foreignField?: string;\n readOnly?: boolean;\n }>;\n fields?: Array<{\n viewField?: string;\n tableName?: string;\n fieldName?: string;\n keyFlag?: boolean;\n readOnly?: boolean;\n rollName?: string;\n checkTable?: string;\n description?: string;\n }>;\n selectionConditions?: Array<{\n andOr?: string;\n leftBracket?: string;\n fieldName?: string;\n operator?: string;\n constantValue?: string;\n rightBracket?: string;\n }>;\n};\n\nexport const viewHandler = createHandler<ViewLike, typeof view>('VIEW', {\n schema: view,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_VIEW',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<ViewLike>(raw);\n\n const tables = obj.tables ?? [];\n const fields = obj.fields ?? [];\n const conditions = obj.selectionConditions ?? [];\n return {\n DD25V: {\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n DDLANGUAGE: isoToSapLang(obj.language),\n DDTEXT: obj.description ?? '',\n VIEWCLASS: obj.viewClass ?? undefined,\n ROOTTAB: obj.baseTable ?? undefined,\n ROOTFIELD: obj.baseTableField ?? undefined,\n },\n DD26V_TABLE:\n tables.length > 0\n ? {\n item: tables.map((t) => ({\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n TABNAME: t.tableName ?? undefined,\n TABPOS: t.position ?? undefined,\n FVIEWNAME: t.foreignView ?? undefined,\n FFIELDNAME: t.foreignField ?? undefined,\n READONLY: t.readOnly ? 'X' : undefined,\n })),\n }\n : undefined,\n DD27P_TABLE:\n fields.length > 0\n ? {\n item: fields.map((f) => ({\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n VIEWFIELD: f.viewField ?? undefined,\n TABNAME: f.tableName ?? undefined,\n FIELDNAME: f.fieldName ?? undefined,\n KEYFLAG: f.keyFlag ? 'X' : undefined,\n READONLY: f.readOnly ? 'X' : undefined,\n ROLLNAME: f.rollName ?? undefined,\n CHECKTABLE: f.checkTable ?? undefined,\n DDTEXT: f.description ?? undefined,\n })),\n }\n : undefined,\n DD28V_TABLE:\n conditions.length > 0\n ? {\n item: conditions.map((c) => ({\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n ANDOR: c.andOr ?? undefined,\n LEFTBRACKET: c.leftBracket ?? undefined,\n FIELDNAME: c.fieldName ?? undefined,\n OPERATOR: c.operator ?? undefined,\n CONST_VALUE: c.constantValue ?? undefined,\n RIGHTBRACKET: c.rightBracket ?? undefined,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: parseViewFromAbapGit,\n});\n\nfunction parseViewTable(t: {\n TABNAME?: string;\n TABPOS?: string;\n FVIEWNAME?: string;\n FFIELDNAME?: string;\n READONLY?: string;\n}) {\n return {\n tableName: t.TABNAME,\n position: t.TABPOS,\n foreignView: t.FVIEWNAME,\n foreignField: t.FFIELDNAME,\n readOnly: t.READONLY === 'X',\n };\n}\n\nfunction parseViewField(f: {\n VIEWFIELD?: string;\n TABNAME?: string;\n FIELDNAME?: string;\n KEYFLAG?: string;\n READONLY?: string;\n ROLLNAME?: string;\n CHECKTABLE?: string;\n DDTEXT?: string;\n}) {\n return {\n viewField: f.VIEWFIELD,\n tableName: f.TABNAME,\n fieldName: f.FIELDNAME,\n keyFlag: f.KEYFLAG === 'X',\n readOnly: f.READONLY === 'X',\n rollName: f.ROLLNAME,\n checkTable: f.CHECKTABLE,\n description: f.DDTEXT,\n };\n}\n\nfunction parseViewCondition(c: {\n ANDOR?: string;\n LEFTBRACKET?: string;\n FIELDNAME?: string;\n OPERATOR?: string;\n CONST_VALUE?: string;\n RIGHTBRACKET?: string;\n}) {\n return {\n andOr: c.ANDOR,\n leftBracket: c.LEFTBRACKET,\n fieldName: c.FIELDNAME,\n operator: c.OPERATOR,\n constantValue: c.CONST_VALUE,\n rightBracket: c.RIGHTBRACKET,\n };\n}\n\nfunction parseViewFromAbapGit({\n DD25V,\n DD26V_TABLE,\n DD27P_TABLE,\n DD28V_TABLE,\n}: {\n DD25V?: {\n VIEWNAME?: string;\n DDTEXT?: string;\n DDLANGUAGE?: string;\n VIEWCLASS?: string;\n ROOTTAB?: string;\n ROOTFIELD?: string;\n };\n DD26V_TABLE?: { item?: unknown };\n DD27P_TABLE?: { item?: unknown };\n DD28V_TABLE?: { item?: unknown };\n}): { name: string } & Record<string, unknown> {\n const tableItems = normalizeItems(DD26V_TABLE?.item);\n const fieldItems = normalizeItems(DD27P_TABLE?.item);\n const condItems = normalizeItems(DD28V_TABLE?.item);\n return {\n name: (DD25V?.VIEWNAME ?? '').toUpperCase(),\n type: 'VIEW/VD',\n description: DD25V?.DDTEXT,\n language: sapLangToIso(DD25V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD25V?.DDLANGUAGE),\n viewClass: DD25V?.VIEWCLASS,\n baseTable: DD25V?.ROOTTAB,\n baseTableField: DD25V?.ROOTFIELD,\n tables: mapItems(tableItems, parseViewTable),\n fields: mapItems(fieldItems, parseViewField),\n selectionConditions: mapItems(condItems, parseViewCondition),\n };\n}\n","/**\n * ENQU (Lock Object) object handler for abapGit format\n *\n * Lock objects are XML-only (no source code). The abapGit format stores\n * the lock object header in DD25V, table assignments in DD26V_TABLE and\n * lock parameters in DD27P_TABLE.\n */\n\nimport { enqu } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype LockObjectLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n baseTable?: string;\n baseTableField?: string;\n tables?: Array<{\n tableName?: string;\n position?: string;\n foreignView?: string;\n foreignField?: string;\n readOnly?: boolean;\n }>;\n parameters?: Array<{\n viewField?: string;\n tableName?: string;\n fieldName?: string;\n keyFlag?: boolean;\n rollName?: string;\n checkTable?: string;\n description?: string;\n }>;\n};\n\nexport const lockObjectHandler = createHandler<LockObjectLike, typeof enqu>(\n 'ENQU',\n {\n schema: enqu,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ENQU',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<LockObjectLike>(raw);\n\n const tables = obj.tables ?? [];\n const parameters = obj.parameters ?? [];\n return {\n DD25V: {\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n DDLANGUAGE: isoToSapLang(obj.masterLanguage || obj.language),\n DDTEXT: obj.description ?? '',\n ROOTTAB: obj.baseTable ?? undefined,\n ROOTFIELD: obj.baseTableField ?? undefined,\n },\n DD26V_TABLE:\n tables.length > 0\n ? {\n item: tables.map((t) => ({\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n TABNAME: t.tableName ?? undefined,\n TABPOS: t.position ?? undefined,\n FVIEWNAME: t.foreignView ?? undefined,\n FFIELDNAME: t.foreignField ?? undefined,\n READONLY: t.readOnly ? 'X' : undefined,\n })),\n }\n : undefined,\n DD27P_TABLE:\n parameters.length > 0\n ? {\n item: parameters.map((p) => ({\n VIEWNAME: String(obj.name ?? '').toUpperCase(),\n VIEWFIELD: p.viewField ?? undefined,\n TABNAME: p.tableName ?? undefined,\n FIELDNAME: p.fieldName ?? undefined,\n KEYFLAG: p.keyFlag ? 'X' : undefined,\n ROLLNAME: p.rollName ?? undefined,\n CHECKTABLE: p.checkTable ?? undefined,\n DDTEXT: p.description ?? undefined,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: parseLockObjectFromAbapGit,\n },\n);\n\nfunction parseEnquTable(t: {\n TABNAME?: string;\n TABPOS?: string;\n FVIEWNAME?: string;\n FFIELDNAME?: string;\n READONLY?: string;\n}) {\n return {\n tableName: t.TABNAME,\n position: t.TABPOS,\n foreignView: t.FVIEWNAME,\n foreignField: t.FFIELDNAME,\n readOnly: t.READONLY === 'X',\n };\n}\n\nfunction parseEnquParam(p: {\n VIEWFIELD?: string;\n TABNAME?: string;\n FIELDNAME?: string;\n KEYFLAG?: string;\n ROLLNAME?: string;\n CHECKTABLE?: string;\n DDTEXT?: string;\n}) {\n return {\n viewField: p.VIEWFIELD,\n tableName: p.TABNAME,\n fieldName: p.FIELDNAME,\n keyFlag: p.KEYFLAG === 'X',\n rollName: p.ROLLNAME,\n checkTable: p.CHECKTABLE,\n description: p.DDTEXT,\n };\n}\n\nfunction parseLockObjectFromAbapGit({\n DD25V,\n DD26V_TABLE,\n DD27P_TABLE,\n}: {\n DD25V?: {\n VIEWNAME?: string;\n DDTEXT?: string;\n DDLANGUAGE?: string;\n ROOTTAB?: string;\n ROOTFIELD?: string;\n };\n DD26V_TABLE?: { item?: unknown };\n DD27P_TABLE?: { item?: unknown };\n}): { name: string } & Record<string, unknown> {\n const tableItems = normalizeItems(DD26V_TABLE?.item);\n const paramItems = normalizeItems(DD27P_TABLE?.item);\n return {\n name: (DD25V?.VIEWNAME ?? '').toUpperCase(),\n type: 'ENQU/LO',\n description: DD25V?.DDTEXT,\n language: sapLangToIso(DD25V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD25V?.DDLANGUAGE),\n baseTable: DD25V?.ROOTTAB,\n baseTableField: DD25V?.ROOTFIELD,\n tables: mapItems(tableItems, parseEnquTable),\n parameters: mapItems(paramItems, parseEnquParam),\n };\n}\n","/**\n * SHLP (Search Help) object handler for abapGit format\n *\n * Search helps are XML-only (no source code). The abapGit format stores\n * the search help header in DD30V, the text table info in DD31V,\n * parameters in DD32P_TABLE and field assignments in DD33V_TABLE.\n */\n\nimport { shlp } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype SearchHelpLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n helpType?: string;\n dialogType?: string;\n textTable?: {\n tableName?: string;\n fieldName?: string;\n fieldLocation?: string;\n rollName?: string;\n };\n parameters?: Array<{\n fieldName?: string;\n input?: boolean;\n output?: boolean;\n selectionPosition?: string;\n listPosition?: string;\n defaultValue?: string;\n rollName?: string;\n description?: string;\n }>;\n fieldAssignments?: Array<{\n helpField?: string;\n tableName?: string;\n fieldName?: string;\n input?: boolean;\n output?: boolean;\n }>;\n};\n\nexport const searchHelpHandler = createHandler<SearchHelpLike, typeof shlp>(\n 'SHLP',\n {\n schema: shlp,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SHLP',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SearchHelpLike>(raw);\n\n const parameters = obj.parameters ?? [];\n const assignments = obj.fieldAssignments ?? [];\n return {\n DD30V: {\n SHLPNAME: String(obj.name ?? '').toUpperCase(),\n DDLANGUAGE: isoToSapLang(obj.language),\n DDTEXT: obj.description ?? '',\n SHLPTYPE: obj.helpType ?? undefined,\n DIALOGTYPE: obj.dialogType ?? undefined,\n },\n DD31V: obj.textTable\n ? {\n SHLPNAME: String(obj.name ?? '').toUpperCase(),\n TABNAME: obj.textTable.tableName ?? undefined,\n FIELDNAME: obj.textTable.fieldName ?? undefined,\n FLDLOCATION: obj.textTable.fieldLocation ?? undefined,\n ROLLNAME: obj.textTable.rollName ?? undefined,\n }\n : undefined,\n DD32P_TABLE:\n parameters.length > 0\n ? {\n item: parameters.map((p) => ({\n SHLPNAME: String(obj.name ?? '').toUpperCase(),\n FIELDNAME: p.fieldName ?? undefined,\n SHLPINPUT: p.input ? 'X' : undefined,\n SHLPOUTPUT: p.output ? 'X' : undefined,\n SHLPSELPOS: p.selectionPosition ?? undefined,\n SHLPLISPOS: p.listPosition ?? undefined,\n DEFAULTVAL: p.defaultValue ?? undefined,\n ROLLNAME: p.rollName ?? undefined,\n DDTEXT: p.description ?? undefined,\n })),\n }\n : undefined,\n DD33V_TABLE:\n assignments.length > 0\n ? {\n item: assignments.map((a) => ({\n SHLPNAME: String(obj.name ?? '').toUpperCase(),\n SHLPFIELD: a.helpField ?? undefined,\n TABNAME: a.tableName ?? undefined,\n FIELDNAME: a.fieldName ?? undefined,\n SHLPINPUT: a.input ? 'X' : undefined,\n SHLPOUTPUT: a.output ? 'X' : undefined,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: parseSearchHelpFromAbapGit,\n },\n);\n\nfunction parseShlpParam(p: {\n FIELDNAME?: string;\n SHLPINPUT?: string;\n SHLPOUTPUT?: string;\n SHLPSELPOS?: string;\n SHLPLISPOS?: string;\n DEFAULTVAL?: string;\n ROLLNAME?: string;\n DDTEXT?: string;\n}) {\n return {\n fieldName: p.FIELDNAME,\n input: p.SHLPINPUT === 'X',\n output: p.SHLPOUTPUT === 'X',\n selectionPosition: p.SHLPSELPOS,\n listPosition: p.SHLPLISPOS,\n defaultValue: p.DEFAULTVAL,\n rollName: p.ROLLNAME,\n description: p.DDTEXT,\n };\n}\n\nfunction parseShlpAssign(a: {\n SHLPFIELD?: string;\n TABNAME?: string;\n FIELDNAME?: string;\n SHLPINPUT?: string;\n SHLPOUTPUT?: string;\n}) {\n return {\n helpField: a.SHLPFIELD,\n tableName: a.TABNAME,\n fieldName: a.FIELDNAME,\n input: a.SHLPINPUT === 'X',\n output: a.SHLPOUTPUT === 'X',\n };\n}\n\nfunction parseSearchHelpFromAbapGit({\n DD30V,\n DD31V,\n DD32P_TABLE,\n DD33V_TABLE,\n}: {\n DD30V?: {\n SHLPNAME?: string;\n DDTEXT?: string;\n DDLANGUAGE?: string;\n SHLPTYPE?: string;\n DIALOGTYPE?: string;\n };\n DD31V?: {\n TABNAME?: string;\n FIELDNAME?: string;\n FLDLOCATION?: string;\n ROLLNAME?: string;\n };\n DD32P_TABLE?: { item?: unknown };\n DD33V_TABLE?: { item?: unknown };\n}): { name: string } & Record<string, unknown> {\n const paramItems = normalizeItems(DD32P_TABLE?.item);\n const assignItems = normalizeItems(DD33V_TABLE?.item);\n return {\n name: (DD30V?.SHLPNAME ?? '').toUpperCase(),\n type: 'SHLP/SH',\n description: DD30V?.DDTEXT,\n language: sapLangToIso(DD30V?.DDLANGUAGE),\n masterLanguage: sapLangToIso(DD30V?.DDLANGUAGE),\n helpType: DD30V?.SHLPTYPE,\n dialogType: DD30V?.DIALOGTYPE,\n textTable: DD31V\n ? {\n tableName: DD31V.TABNAME,\n fieldName: DD31V.FIELDNAME,\n fieldLocation: DD31V.FLDLOCATION,\n rollName: DD31V.ROLLNAME,\n }\n : undefined,\n parameters: mapItems(paramItems, parseShlpParam),\n fieldAssignments: mapItems(assignItems, parseShlpAssign),\n };\n}\n","/**\n * TRAN (Transaction) object handler for abapGit format\n *\n * Transactions are XML-only (no source code). The abapGit format stores\n * the transaction code in TSTC, GUI attributes in TSTCC and texts in\n * the TSTCT table (wrapped in <item> elements).\n */\n\nimport { tran } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype TransactionLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n programName?: string;\n dynproNumber?: string;\n transactionType?: string;\n guiAttributes?: {\n webGui?: boolean;\n platinumGui?: boolean;\n win32Gui?: boolean;\n macGui?: boolean;\n };\n texts?: Array<{\n language?: string;\n text?: string;\n }>;\n};\n\nexport const transactionHandler = createHandler<TransactionLike, typeof tran>(\n 'TRAN',\n {\n schema: tran,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TRAN',\n serializer_version: 'v1.0.0',\n\n toAbapGit: buildTransactionToAbapGit,\n\n fromAbapGit: parseTransactionFromAbapGit,\n },\n);\n\nfunction parseGuiAttributes(\n TSTCC:\n | { S_WEBGUI?: string; S_PLATIN?: string; S_WIN32?: string; S_MAC?: string }\n | undefined,\n) {\n if (!TSTCC) return undefined;\n return {\n webGui: TSTCC.S_WEBGUI === 'X',\n platinumGui: TSTCC.S_PLATIN === 'X',\n win32Gui: TSTCC.S_WIN32 === 'X',\n macGui: TSTCC.S_MAC === 'X',\n };\n}\n\nfunction parseTransactionFromAbapGit({\n TSTC,\n TSTCC,\n TSTCT,\n}: {\n TSTC?: { TCODE?: string; PGMNA?: string; DYPNO?: string; TYPE?: string };\n TSTCC?: {\n S_WEBGUI?: string;\n S_PLATIN?: string;\n S_WIN32?: string;\n S_MAC?: string;\n };\n TSTCT?: {\n item?:\n | Array<{ SPRSL?: string; TTEXT?: string }>\n | { SPRSL?: string; TTEXT?: string };\n };\n}): { name: string } & Record<string, unknown> {\n const textItems = normalizeItems(TSTCT?.item);\n const firstText = textItems[0];\n return {\n name: (TSTC?.TCODE ?? '').toUpperCase(),\n type: 'TRAN/ST',\n description: firstText?.TTEXT,\n language: sapLangToIso(firstText?.SPRSL),\n masterLanguage: sapLangToIso(firstText?.SPRSL),\n programName: TSTC?.PGMNA,\n dynproNumber: TSTC?.DYPNO,\n transactionType: TSTC?.TYPE,\n guiAttributes: parseGuiAttributes(TSTCC),\n texts: mapItems(textItems, (t) => ({\n language: sapLangToIso(t.SPRSL),\n text: t.TTEXT,\n })),\n };\n}\n\nfunction buildTstc(obj: TransactionLike) {\n return {\n TCODE: String(obj.name ?? '').toUpperCase(),\n PGMNA: obj.programName ?? undefined,\n DYPNO: obj.dynproNumber ?? undefined,\n TYPE: obj.transactionType ?? undefined,\n };\n}\n\nfunction buildTstcc(\n gui: NonNullable<TransactionLike['guiAttributes']>,\n tcode: string,\n) {\n return {\n TCODE: tcode,\n S_WEBGUI: gui.webGui ? 'X' : undefined,\n S_PLATIN: gui.platinumGui ? 'X' : undefined,\n S_WIN32: gui.win32Gui ? 'X' : undefined,\n S_MAC: gui.macGui ? 'X' : undefined,\n };\n}\n\nfunction buildTstct(\n texts: NonNullable<TransactionLike['texts']>,\n obj: TransactionLike,\n) {\n if (texts.length === 0) return undefined;\n return {\n item: texts.map((t) => ({\n SPRSL: isoToSapLang(t.language || obj.masterLanguage || obj.language),\n TCODE: String(obj.name ?? '').toUpperCase(),\n TTEXT: t.text ?? '',\n })),\n };\n}\n\nfunction buildTransactionToAbapGit(raw: TransactionLike) {\n const obj = unwrapData<TransactionLike>(raw);\n const texts = obj.texts ?? [];\n const tcode = String(obj.name ?? '').toUpperCase();\n return {\n TSTC: buildTstc(obj),\n TSTCC: obj.guiAttributes ? buildTstcc(obj.guiAttributes, tcode) : undefined,\n TSTCT: buildTstct(texts, obj),\n };\n}\n","/**\n * TYPE (Type Group / Type Pool) object handler for abapGit format\n *\n * Type groups have both XML metadata (TYPE structure) and ABAP source\n * (<name>.type.abap). The abapGit format stores the header in TYPE.\n */\n\nimport { type as typeSchema } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype TypeGroupLike = {\n name: string;\n description?: string;\n getSource?: () => Promise<string> | string;\n};\n\nexport const typeGroupHandler = createHandler<TypeGroupLike, typeof typeSchema>(\n 'TYPE',\n {\n schema: typeSchema,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TYPE',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<TypeGroupLike>(raw);\n return {\n TYPE: {\n TYPEGROUP: String(obj.name ?? '').toUpperCase(),\n DESCRIPT: obj.description ?? '',\n },\n };\n },\n\n getSource: (obj) =>\n typeof obj?.getSource === 'function'\n ? Promise.resolve(obj.getSource())\n : Promise.resolve(''),\n\n fromAbapGit: ({ TYPE }) => ({\n name: (TYPE?.TYPEGROUP ?? '').toUpperCase(),\n type: 'TYPE/TY',\n description: TYPE?.DESCRIPT,\n }),\n\n setSources: (obj, sources) => {\n if (sources.main) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n },\n);\n","/**\n * XSLT (Transformation) object handler for abapGit format\n *\n * Transformations have both XML metadata (XSLT structure) and ABAP source\n * (<name>.xslt.abap). The abapGit format stores the header in XSLT.\n */\n\nimport { xslt } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype TransformationLike = {\n name: string;\n description?: string;\n getSource?: () => Promise<string> | string;\n};\n\nexport const transformationHandler = createHandler<\n TransformationLike,\n typeof xslt\n>('XSLT', {\n schema: xslt,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_XSLT',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n XSLT: {\n PROGNAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPT: obj.description ?? '',\n },\n }),\n\n getSource: (obj) =>\n typeof obj?.getSource === 'function'\n ? Promise.resolve(obj.getSource())\n : Promise.resolve(''),\n\n fromAbapGit: ({ XSLT }) => ({\n name: (XSLT?.PROGNAME ?? '').toUpperCase(),\n type: 'XSLT/TX',\n description: XSLT?.DESCRIPT,\n }),\n\n setSources: (obj, sources) => {\n if (sources.main) {\n (obj as unknown as { _pendingSource: string })._pendingSource =\n sources.main;\n }\n },\n});\n","/**\n * ENHO (Enhancement Implementation) object handler for abapGit format\n *\n * Enhancement implementations are XML-based with multiple tool sub-types:\n * - BADI_IMPL: BAdI implementation (most common, ADK-supported via AdkBadi)\n * - HOOK_IMPL: Hook implementation (source-driven)\n * - CLASS: Class enhancement (source-driven)\n * - INTF: Interface enhancement\n * - WDYC: Web Dynpro component enhancement\n * - FUGR: Function group enhancement\n * - WDYN: Web Dynpro application enhancement\n *\n * File layout:\n * src/zfoo.enho.xml — metadata (TOOL, SHORTTEXT, IMPL/ENHANCEMENTS, etc.)\n * src/zfoo.enho.abap — source (for HOOK_IMPL, CLASS sub-types)\n */\n\nimport { enho } from '../../../schemas/generated';\nimport { createHandler, normalizeItems } from '../base';\n\ntype BadiImplData = {\n SPOT_NAME?: string;\n BADI_NAME?: string;\n IMPL_NAME?: string;\n IMPL_CLASS?: string;\n ACTIVE?: string;\n IMPL_SHORTTEXT?: string;\n IMPL_SHORTTEXT_ID?: string;\n LOCKED_IN_CUSTOMIZING?: string;\n FILTER_ROOT?: unknown;\n FILTER_VALUES?: unknown;\n FILTERS?: unknown;\n};\n\ntype BadiImplLike = {\n spotName?: string;\n badiName?: string;\n implName?: string;\n implClass?: string;\n active?: boolean;\n implShorttext?: string;\n implShorttextId?: string;\n lockedInCustomizing?: boolean;\n filterRoot?: unknown;\n filterValues?: unknown;\n filters?: unknown;\n};\n\ntype EnhancementImplementationLike = {\n name: string;\n description?: string;\n tool?: string;\n spotName?: string;\n badiName?: string;\n implName?: string;\n implClass?: string;\n active?: boolean;\n implShorttext?: string;\n implShorttextId?: string;\n lockedInCustomizing?: boolean;\n filterRoot?: unknown;\n filterValues?: unknown;\n filters?: unknown;\n impls?: BadiImplLike[];\n originalObject?: {\n pgmid?: string;\n objType?: string;\n objName?: string;\n mainType?: string;\n mainName?: string;\n programName?: string;\n };\n enhancements?: unknown;\n files?: unknown;\n sotr?: unknown;\n sotrUse?: unknown;\n getSource?: () => Promise<string> | string;\n};\n\nexport const enhancementImplementationHandler = createHandler<\n EnhancementImplementationLike,\n typeof enho\n>('ENHO', {\n schema: enho,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ENHO',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const tool = obj.tool || 'BADI_IMPL';\n const result: Record<string, unknown> = {\n TOOL: tool,\n SHORTTEXT: obj.description ?? '',\n };\n\n if (tool === 'BADI_IMPL') {\n const toImplXml = (i: BadiImplLike): BadiImplData => ({\n SPOT_NAME: i.spotName,\n BADI_NAME: i.badiName,\n IMPL_NAME: i.implName,\n IMPL_CLASS: i.implClass,\n ACTIVE: i.active ? 'X' : undefined,\n IMPL_SHORTTEXT: i.implShorttext,\n IMPL_SHORTTEXT_ID: i.implShorttextId,\n LOCKED_IN_CUSTOMIZING: i.lockedInCustomizing ? 'X' : undefined,\n FILTER_ROOT: i.filterRoot,\n FILTER_VALUES: i.filterValues,\n FILTERS: i.filters,\n });\n const impls = obj.impls?.length ? obj.impls : [obj];\n result.SPOT_NAME = obj.spotName;\n result.IMPL = { ENH_BADI_IMPL_DATA: impls.map(toImplXml) };\n } else if (obj.originalObject) {\n result.ORIGINAL_OBJECT = {\n PGMID: obj.originalObject.pgmid ?? 'R3TR',\n ORG_OBJ_TYPE: obj.originalObject.objType,\n ORG_OBJ_NAME: obj.originalObject.objName,\n ORG_MAIN_TYPE: obj.originalObject.mainType,\n ORG_MAIN_NAME: obj.originalObject.mainName,\n PROGRAMNAME: obj.originalObject.programName,\n };\n }\n\n // Pass through enhancement metadata shared by all tool sub-types\n result.ENHANCEMENTS = obj.enhancements;\n result.FILES = obj.files;\n result.SOTR = obj.sotr;\n result.SOTR_USE = obj.sotrUse;\n\n return result;\n },\n\n fromAbapGit: ({\n TOOL,\n SHORTTEXT,\n SPOT_NAME,\n IMPL,\n ORIGINAL_OBJECT,\n ENHANCEMENTS,\n FILES,\n SOTR,\n SOTR_USE,\n }) => {\n const implRows = normalizeItems(\n (\n IMPL as\n { ENH_BADI_IMPL_DATA?: BadiImplData | BadiImplData[] } | undefined\n )?.ENH_BADI_IMPL_DATA,\n );\n const implData = implRows[0];\n return {\n name: '', // ENHO name comes from filename, not XML content\n description: SHORTTEXT,\n tool: TOOL,\n spotName: SPOT_NAME || implData?.SPOT_NAME,\n badiName: implData?.BADI_NAME,\n implName: implData?.IMPL_NAME,\n implClass: implData?.IMPL_CLASS,\n active: implData?.ACTIVE === 'X',\n implShorttext: implData?.IMPL_SHORTTEXT,\n implShorttextId: implData?.IMPL_SHORTTEXT_ID,\n lockedInCustomizing: implData?.LOCKED_IN_CUSTOMIZING === 'X',\n filterRoot: implData?.FILTER_ROOT,\n filterValues: implData?.FILTER_VALUES,\n filters: implData?.FILTERS,\n impls: implRows.map((i) => ({\n spotName: i.SPOT_NAME,\n badiName: i.BADI_NAME,\n implName: i.IMPL_NAME,\n implClass: i.IMPL_CLASS,\n active: i.ACTIVE === 'X',\n implShorttext: i.IMPL_SHORTTEXT,\n implShorttextId: i.IMPL_SHORTTEXT_ID,\n lockedInCustomizing: i.LOCKED_IN_CUSTOMIZING === 'X',\n filterRoot: i.FILTER_ROOT,\n filterValues: i.FILTER_VALUES,\n filters: i.FILTERS,\n })),\n originalObject: ORIGINAL_OBJECT\n ? {\n pgmid: ORIGINAL_OBJECT.PGMID,\n objType: ORIGINAL_OBJECT.ORG_OBJ_TYPE,\n objName: ORIGINAL_OBJECT.ORG_OBJ_NAME,\n mainType: ORIGINAL_OBJECT.ORG_MAIN_TYPE,\n mainName: ORIGINAL_OBJECT.ORG_MAIN_NAME,\n programName: ORIGINAL_OBJECT.PROGRAMNAME,\n }\n : undefined,\n enhancements: ENHANCEMENTS,\n files: FILES,\n sotr: SOTR,\n sotrUse: SOTR_USE,\n };\n },\n\n // HOOK_IMPL / CLASS enhancements carry .enho.abap source\n getSource: (obj) => Promise.resolve(obj.getSource?.() ?? ''),\n});\n","/**\n * ENHS (Enhancement Spot) object handler for abapGit format\n *\n * Enhancement spots are XML-based with two tool sub-types:\n * - BADI_DEF: BAdI definition spot (defines BAdI interfaces)\n * - HOOK_DEF: Hook definition spot (defines hook points)\n *\n * File layout:\n * src/zfoo.enhs.xml — metadata (TOOL, SHORTTEXT, PARENT_COMP, BADI_DATA)\n *\n * BADI_DATA structure differs by tool type:\n * - BADI_DEF: table of BAdI definitions (BADI_NAME, INTERFACE, etc.)\n * - HOOK_DEF: single structure (PGMID, OBJ_NAME, DEF_HOOKS, etc.)\n */\n\nimport { enhs } from '../../../schemas/generated';\nimport { createHandler, normalizeItems } from '../base';\n\ntype BadiDefinition = {\n BADI_NAME?: string;\n BADI_SHORTTEXT?: string;\n INTERFACE?: string;\n INSTANTIATION?: string;\n MULTIPLE_USE?: string;\n FILTERS?: unknown;\n};\n\ntype HookDefinition = {\n PGMID?: string;\n OBJ_NAME?: string;\n OBJ_TYPE?: string;\n MAIN_TYPE?: string;\n MAIN_NAME?: string;\n PROGRAM?: string;\n DEF_HOOKS?: unknown;\n};\n\ntype EnhancementSpotLike = {\n name: string;\n description?: string;\n tool?: string;\n parentComposite?: string;\n abapLanguageVersion?: string;\n badiDefinitions?: BadiDefinition[];\n hookDefinition?: HookDefinition;\n};\n\nexport const enhancementSpotHandler = createHandler<\n EnhancementSpotLike,\n typeof enhs\n>('ENHS', {\n schema: enhs,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ENHS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const tool = obj.tool || 'BADI_DEF';\n const result: Record<string, unknown> = {\n TOOL: tool,\n SHORTTEXT: obj.description ?? '',\n };\n\n if (obj.parentComposite) {\n result.PARENT_COMP = obj.parentComposite;\n }\n if (obj.abapLanguageVersion) {\n result.ABAP_LANGUAGE_VERSION = obj.abapLanguageVersion;\n }\n\n if (tool === 'BADI_DEF' && obj.badiDefinitions?.length) {\n result.BADI_DATA = {\n item: obj.badiDefinitions.map((b) => ({\n BADI_NAME: b.BADI_NAME,\n BADI_SHORTTEXT: b.BADI_SHORTTEXT,\n INTERFACE: b.INTERFACE,\n INSTANTIATION: b.INSTANTIATION,\n MULTIPLE_USE: b.MULTIPLE_USE,\n FILTERS: b.FILTERS,\n })),\n };\n } else if (tool === 'HOOK_DEF' && obj.hookDefinition) {\n result.BADI_DATA = {\n PGMID: obj.hookDefinition.PGMID,\n OBJ_NAME: obj.hookDefinition.OBJ_NAME,\n OBJ_TYPE: obj.hookDefinition.OBJ_TYPE,\n MAIN_TYPE: obj.hookDefinition.MAIN_TYPE,\n MAIN_NAME: obj.hookDefinition.MAIN_NAME,\n PROGRAM: obj.hookDefinition.PROGRAM,\n DEF_HOOKS: obj.hookDefinition.DEF_HOOKS,\n };\n }\n\n return result;\n },\n\n fromAbapGit: ({\n TOOL,\n SHORTTEXT,\n PARENT_COMP,\n BADI_DATA,\n ABAP_LANGUAGE_VERSION,\n }) => {\n const tool = TOOL || 'BADI_DEF';\n const result: { name: string } & Record<string, unknown> = {\n name: '', // ENHS name comes from filename, not XML content\n description: SHORTTEXT,\n tool,\n parentComposite: PARENT_COMP,\n abapLanguageVersion: ABAP_LANGUAGE_VERSION,\n };\n\n const badiData = BADI_DATA as\n | ({ item?: BadiDefinition | BadiDefinition[] } & HookDefinition)\n | undefined;\n if (tool === 'BADI_DEF' && badiData) {\n result.badiDefinitions = normalizeItems(badiData.item);\n } else if (tool === 'HOOK_DEF' && badiData) {\n result.hookDefinition = {\n PGMID: badiData.PGMID,\n OBJ_NAME: badiData.OBJ_NAME,\n OBJ_TYPE: badiData.OBJ_TYPE,\n MAIN_TYPE: badiData.MAIN_TYPE,\n MAIN_NAME: badiData.MAIN_NAME,\n PROGRAM: badiData.PROGRAM,\n DEF_HOOKS: badiData.DEF_HOOKS,\n };\n }\n\n return result;\n },\n});\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const cdsAspectHandler = createCdsAffSourceHandler('DRAS');\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const cdsTypeHandler = createCdsAffSourceHandler('DRTY');\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const scalarFunctionDefinitionHandler =\n createCdsAffSourceHandler('DSFD');\n","import { bdef } from '../../../schemas/generated';\nimport { createHandler, type SerializedFile } from '../base';\nimport { FormatMaterializationError } from '@abapify/adt-plugin';\n\ninterface DsfiDefinition {\n formatVersion: '1';\n header: {\n description: string;\n originalLanguage: string;\n abapLanguageVersion?: string;\n };\n scalarFunctionName: string;\n engine: 'analyticalEngine' | 'sqlEngine';\n sqlProperties?: { amdpReference: string; autoExposedInSqlServices?: boolean };\n}\n\ntype DsfiLike = {\n name: string;\n getSource?: () => Promise<unknown>;\n};\n\nconst VALID_ENGINES = new Set(['analyticalEngine', 'sqlEngine']);\n\nfunction isDsfiDefinition(value: unknown): value is DsfiDefinition {\n const candidate = value as Partial<DsfiDefinition> | undefined;\n return (\n !!candidate &&\n candidate.formatVersion === '1' &&\n typeof candidate.scalarFunctionName === 'string' &&\n VALID_ENGINES.has(candidate.engine ?? '') &&\n typeof candidate.header?.description === 'string' &&\n typeof candidate.header?.originalLanguage === 'string'\n );\n}\n\nfunction parseDsfiDefinition(value: unknown): DsfiDefinition {\n let parsed: unknown;\n try {\n parsed = typeof value === 'string' ? JSON.parse(value) : value;\n } catch {\n throw new FormatMaterializationError(\n 'FORMAT_SOURCE_COMPONENT_UNSUPPORTED',\n 'DSFI source/main did not return valid JSON.',\n );\n }\n if (!isDsfiDefinition(parsed)) {\n throw new FormatMaterializationError(\n 'FORMAT_SOURCE_COMPONENT_UNSUPPORTED',\n 'DSFI source/main did not return the required ABAP File Format JSON document.',\n );\n }\n return parsed;\n}\n\nexport const scalarFunctionImplementationHandler = createHandler<\n DsfiLike,\n typeof bdef\n>('DSFI', {\n schema: bdef,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DSFI',\n serializer_version: 'v1.0.0',\n toAbapGit: (obj) => ({\n SKEY: { TYPE: 'DSFI', NAME: String(obj?.name ?? '').toUpperCase() },\n }),\n fromAffJson: (json) => {\n const def = json as Partial<DsfiDefinition> | undefined;\n return {\n // Use filename-derived name (injected by deserializer); scalarFunctionName\n // is a reference, not the object identity.\n name: '',\n description: def?.header?.description,\n originalLanguage: def?.header?.originalLanguage,\n abapLanguageVersion: def?.header?.abapLanguageVersion,\n };\n },\n async serialize(object, ctx): Promise<SerializedFile[]> {\n const definition = parseDsfiDefinition(\n typeof object.getSource === 'function'\n ? await object.getSource()\n : undefined,\n );\n return [\n ctx.createFile(\n `${ctx.getObjectName(object)}.dsfi.json`,\n `${JSON.stringify(definition, null, 2)}\\n`,\n ),\n ];\n },\n});\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const entityBufferHandler = createCdsAffSourceHandler('DTEB');\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const dynamicCacheHandler = createCdsAffSourceHandler('DTDC');\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const tuningIndexHandler = createCdsAffSourceHandler('DTIX');\n","import { createCdsAffSourceHandler } from './cds-aff-source';\n\nexport const staticCacheHandler = createCdsAffSourceHandler('DTSC');\n","import { bdef } from '../../../schemas/generated';\nimport { createHandler, type SerializedFile, unwrapData } from '../base';\nimport { affFromAffJson } from '../source-resolver';\n\ntype DesdLike = {\n name: string;\n description?: string;\n originalLanguage?: string;\n};\n\nexport const externalSchemaHandler = createHandler<DesdLike, typeof bdef>(\n 'DESD',\n {\n schema: bdef,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DESD',\n serializer_version: 'v1.0.0',\n toAbapGit: (raw) => {\n const obj = unwrapData<DesdLike>(raw);\n return {\n SKEY: { TYPE: 'DESD', NAME: String(obj?.name ?? '').toUpperCase() },\n };\n },\n fromAffJson: (json) => affFromAffJson(json, ''),\n async serialize(object, ctx): Promise<SerializedFile[]> {\n const header = {\n description: object.description || String(object.name ?? ''),\n originalLanguage: (object.originalLanguage ?? 'en').toLowerCase(),\n };\n return [\n ctx.createFile(\n `${ctx.getObjectName(object)}.desd.json`,\n `${JSON.stringify({ formatVersion: '1', header }, null, 2)}\\n`,\n ),\n ];\n },\n },\n);\n","/**\n * Shared factory for AFF-first object handlers.\n *\n * The 17 AFF-first types (APLO, BGQC, CDBO, CHKC, CHKO, CHKV, COTA, EVTB,\n * GSMP, NONT, RONT, SAJC, SAJT, SMBC, UIAD, UIPG, UIST) all share the same\n * serialization logic — only the type code and file extension differ.\n * This factory eliminates the per-handler duplication.\n */\n\nimport { bdef } from '../../schemas/generated';\nimport { createHandler, type SerializedFile } from './base';\nimport { affFromAffJson } from './source-resolver';\n\ntype AffFirstLike = {\n name: string;\n description?: string;\n originalLanguage?: string;\n};\n\n/**\n * Create an AFF-first handler that serializes to JSON metadata only.\n *\n * @param type ABAP object type code (e.g. 'APLO')\n * @param ext Lowercase file extension for the JSON sidecar (e.g. 'aplo')\n */\nexport function createAffFirstHandler(type: string, ext: string) {\n return createHandler<AffFirstLike, typeof bdef>(type, {\n schema: bdef,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n toAbapGit: (obj) => ({\n SKEY: { TYPE: type, NAME: String(obj?.name ?? '').toUpperCase() },\n }),\n fromAffJson: (json) => affFromAffJson(json, ''),\n async serialize(object, ctx): Promise<SerializedFile[]> {\n const header = {\n description: object.description || String(object.name ?? ''),\n originalLanguage: (object.originalLanguage ?? 'en').toLowerCase(),\n };\n return [\n ctx.createFile(\n `${ctx.getObjectName(object)}.${ext}.json`,\n `${JSON.stringify({ formatVersion: '1', header }, null, 2)}\\n`,\n ),\n ];\n },\n });\n}\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const applicationLogObjectHandler = createAffFirstHandler(\n 'APLO',\n 'aplo',\n);\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const bgqcHandler = createAffFirstHandler('BGQC', 'bgqc');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const cdboHandler = createAffFirstHandler('CDBO', 'cdbo');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const checkCategoryHandler = createAffFirstHandler('CHKC', 'chkc');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const checkObjectHandler = createAffFirstHandler('CHKO', 'chko');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const checkVariantHandler = createAffFirstHandler('CHKV', 'chkv');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const communicationTargetHandler = createAffFirstHandler('COTA', 'cota');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const eventBindingHandler = createAffFirstHandler('EVTB', 'evtb');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const gsmpHandler = createAffFirstHandler('GSMP', 'gsmp');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const objectTypeNodeHandler = createAffFirstHandler('NONT', 'nont');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const objectTypeHandler = createAffFirstHandler('RONT', 'ront');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const jobCatalogHandler = createAffFirstHandler('SAJC', 'sajc');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const jobTemplateHandler = createAffFirstHandler('SAJT', 'sajt');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const bcmHandler = createAffFirstHandler('SMBC', 'smbc');\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const launchpadAppDescriptorHandler = createAffFirstHandler(\n 'UIAD',\n 'uiad',\n);\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const launchpadPageTemplateHandler = createAffFirstHandler(\n 'UIPG',\n 'uipg',\n);\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const launchpadSpaceTemplateHandler = createAffFirstHandler(\n 'UIST',\n 'uist',\n);\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const eventConsumptionEngineConfigHandler = createAffFirstHandler(\n 'EEEC',\n 'eeec',\n);\n","import { createAffFirstHandler } from '../aff-handler';\n\nexport const softwareComponentRelationsHandler = createAffFirstHandler(\n 'SWCR',\n 'swcr',\n);\n","/**\n * HTTP (HTTP Service) object handler for abapGit format\n *\n * HTTP services are XML-only (no source code). The abapGit format stores\n * the service ID in HTTPID, description in HTTPTEXT, and handler\n * configuration in HTTPHDL (UCON framework).\n */\n\nimport { http } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype HttpServiceLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n handlerClass?: string;\n serviceOrder?: string;\n handlers?: Array<{ handler?: string; serviceOrder?: string }>;\n};\n\nexport const httpServiceHandler = createHandler<HttpServiceLike, typeof http>(\n 'HTTP',\n {\n schema: http,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_HTTP',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<HttpServiceLike>(raw);\n\n const name = String(obj.name ?? '').toUpperCase();\n const lang = isoToSapLang(obj.masterLanguage || obj.language);\n return {\n HTTPID: name,\n HTTPTEXT: {\n ID: name,\n VERSION: 'A',\n LANG: lang,\n SHORTTEXT: obj.description ?? '',\n },\n HTTPHDL: obj.handlers?.length\n ? {\n UCONSERVHANDLER: obj.handlers.map((h, i) => ({\n ID: name,\n VERSION: 'A',\n SERVICEORDER: h.serviceOrder ?? String(i + 1).padStart(2, '0'),\n SERVICEHANDLER: h.handler,\n })),\n }\n : obj.handlerClass\n ? {\n UCONSERVHANDLER: {\n ID: name,\n VERSION: 'A',\n SERVICEORDER: obj.serviceOrder ?? '01',\n SERVICEHANDLER: obj.handlerClass,\n },\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ HTTPID, HTTPTEXT, HTTPHDL }) => {\n const handler = HTTPHDL?.UCONSERVHANDLER;\n const items = handler\n ? Array.isArray(handler)\n ? handler\n : [handler]\n : [];\n const firstHandler = items[0];\n return {\n name: (HTTPID ?? HTTPTEXT?.ID ?? '').toUpperCase(),\n description: HTTPTEXT?.SHORTTEXT,\n language: sapLangToIso(HTTPTEXT?.LANG),\n masterLanguage: sapLangToIso(HTTPTEXT?.LANG),\n handlerClass: firstHandler?.SERVICEHANDLER,\n serviceOrder: firstHandler?.SERVICEORDER,\n handlers: items.map((h) => ({\n handler: h.SERVICEHANDLER,\n serviceOrder: h.SERVICEORDER,\n })),\n };\n },\n },\n);\n","/**\n * NROB (Number Range Object) handler for abapGit format\n *\n * Number range objects are XML-only (no source code). The abapGit format\n * stores attributes (object, domain, buffering) and text only.\n * Intervals are NOT serialized by abapGit (managed via SAP function modules).\n */\n\nimport { nrob } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype NumberRangeObjectLike = {\n name: string;\n description?: string;\n shortText?: string;\n language?: string;\n masterLanguage?: string;\n domainLength?: string;\n percentage?: string;\n percentage2?: string;\n buffer?: boolean;\n noivbuffer?: string;\n code?: string;\n gap?: string;\n rollNr?: string;\n yearly?: string;\n nrLvl?: string;\n procInd?: string;\n};\n\nexport const numberRangeObjectHandler = createHandler<\n NumberRangeObjectLike,\n typeof nrob\n>('NROB', {\n schema: nrob,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_NROB',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const name = String(obj.name ?? '').toUpperCase();\n return {\n ATTRIBUTES: {\n OBJECT: name,\n DOMLEN: obj.domainLength,\n PERCENTAGE: obj.percentage,\n PERCENTAGE2: obj.percentage2,\n BUFFER: obj.buffer ? 'X' : undefined,\n NOIVBUFFER: obj.noivbuffer,\n CODE: obj.code,\n GAP: obj.gap,\n ROLLNR: obj.rollNr,\n YEARLY: obj.yearly,\n NRLVL: obj.nrLvl,\n PROCIND: obj.procInd,\n },\n TEXT: {\n LANGU: isoToSapLang(obj.masterLanguage || obj.language),\n OBJECT: name,\n TXT: obj.description ?? '',\n TXTSHORT: obj.shortText ?? '',\n },\n };\n },\n\n fromAbapGit: ({ ATTRIBUTES, TEXT }) => ({\n name: (ATTRIBUTES?.OBJECT ?? '').toUpperCase(),\n description: TEXT?.TXT,\n shortText: TEXT?.TXTSHORT,\n language: sapLangToIso(TEXT?.LANGU),\n masterLanguage: sapLangToIso(TEXT?.LANGU),\n domainLength: ATTRIBUTES?.DOMLEN,\n percentage: ATTRIBUTES?.PERCENTAGE,\n percentage2: ATTRIBUTES?.PERCENTAGE2,\n buffer: ATTRIBUTES?.BUFFER === 'X',\n noivbuffer: ATTRIBUTES?.NOIVBUFFER,\n code: ATTRIBUTES?.CODE,\n gap: ATTRIBUTES?.GAP,\n rollNr: ATTRIBUTES?.ROLLNR,\n yearly: ATTRIBUTES?.YEARLY,\n nrLvl: ATTRIBUTES?.NRLVL,\n procInd: ATTRIBUTES?.PROCIND,\n }),\n});\n","/**\n * CHDO (Change Document) handler for abapGit format\n *\n * Change document objects are XML-only. The abapGit format stores\n * generated reports (TCDRPS), tracked tables (TCDOBS), and texts.\n */\n\nimport { chdo } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype ChangeDocumentObjectLike = {\n name: string;\n description?: string;\n language?: string;\n masterLanguage?: string;\n generatedReports?: Array<{\n object?: string;\n reportName?: string;\n area?: string;\n errorNumber?: string;\n }>;\n objects?: Array<{\n object?: string;\n tableName?: string;\n docDelete?: boolean;\n docInsert?: boolean;\n docUpdateNoIf?: boolean;\n }>;\n objectTexts?: Array<{\n language?: string;\n object?: string;\n text?: string;\n }>;\n};\n\nexport const changeDocumentObjectHandler = createHandler<\n ChangeDocumentObjectLike,\n typeof chdo\n>('CHDO', {\n schema: chdo,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CHDO',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const name = String(obj.name ?? '').toUpperCase();\n return {\n CHDO: {\n REPORTS_GENERATED: obj.generatedReports?.length\n ? {\n TCDRPS: obj.generatedReports.map((r) => ({\n OBJECT: r.object ?? name,\n REPORTNAME: r.reportName,\n ARBGEB: r.area,\n FEHLERNR: r.errorNumber,\n })),\n }\n : undefined,\n OBJECTS: obj.objects?.length\n ? {\n TCDOBS: obj.objects.map((o) => ({\n OBJECT: o.object ?? name,\n TABNAME: o.tableName,\n DOCUDEL: o.docDelete ? 'X' : undefined,\n DOCUINS: o.docInsert ? 'X' : undefined,\n DOCUD_NOIF: o.docUpdateNoIf ? 'X' : undefined,\n })),\n }\n : undefined,\n OBJECTS_TEXT: obj.objectTexts?.length\n ? {\n TCDOBTS: mapItems(obj.objectTexts, (t) => ({\n SPRAS: isoToSapLang(\n t.language || obj.masterLanguage || obj.language,\n ),\n OBJECT: t.object ?? name,\n OBTEXT: t.text,\n })),\n }\n : obj.description\n ? {\n TCDOBTS: [\n {\n SPRAS: isoToSapLang(obj.masterLanguage || obj.language),\n OBJECT: name,\n OBTEXT: obj.description,\n },\n ],\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ CHDO }) => {\n const reports = normalizeItems(CHDO?.REPORTS_GENERATED?.TCDRPS);\n const objects = normalizeItems(CHDO?.OBJECTS?.TCDOBS);\n const texts = normalizeItems(CHDO?.OBJECTS_TEXT?.TCDOBTS);\n const firstText = texts[0];\n return {\n name: (\n firstText?.OBJECT ??\n reports[0]?.OBJECT ??\n objects[0]?.OBJECT ??\n ''\n ).toUpperCase(),\n description: firstText?.OBTEXT,\n language: sapLangToIso(firstText?.SPRAS),\n masterLanguage: sapLangToIso(firstText?.SPRAS),\n objectTexts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRAS),\n object: t.OBJECT,\n text: t.OBTEXT,\n })),\n generatedReports: mapItems(reports, (r) => ({\n object: r.OBJECT,\n reportName: r.REPORTNAME,\n area: r.ARBGEB,\n errorNumber: r.FEHLERNR,\n })),\n objects: mapItems(objects, (o) => ({\n object: o.OBJECT,\n tableName: o.TABNAME,\n docDelete: o.DOCUDEL === 'X',\n docInsert: o.DOCUINS === 'X',\n docUpdateNoIf: o.DOCUD_NOIF === 'X',\n })),\n };\n },\n});\n","/**\n * SMTG (Email Template) handler for abapGit format\n *\n * Email templates are XML-only. The abapGit format stores the template\n * header (ID, name, type, category), header texts (HEADER_T), and\n * content (subject, body).\n */\n\nimport { smtg } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype EmailTemplateLike = {\n name: string;\n description?: string;\n templateName?: string;\n templateType?: string;\n templateCategory?: string;\n language?: string;\n masterLanguage?: string;\n headerTexts?: Array<{\n name?: string;\n description?: string;\n language?: string;\n }>;\n contents?: Array<{\n language?: string;\n subject?: string;\n body?: string;\n }>;\n};\n\ntype SmtgHeaderTextXml = {\n NAME?: string;\n DESCRIPTION?: string;\n LANGU?: string;\n};\n\ntype SmtgContentXml = {\n TMPL_ID?: string;\n LANGU?: string;\n SUBJECT?: string;\n BODY?: string;\n};\n\nconst smtgHeaderTextFromXml = (t: SmtgHeaderTextXml) => ({\n name: t.NAME,\n description: t.DESCRIPTION,\n language: sapLangToIso(t.LANGU),\n});\n\nconst smtgContentFromXml = (c: SmtgContentXml) => ({\n language: sapLangToIso(c.LANGU),\n subject: c.SUBJECT,\n body: c.BODY,\n});\n\nexport const emailTemplateHandler = createHandler<\n EmailTemplateLike,\n typeof smtg\n>('SMTG', {\n schema: smtg,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SMTG',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<EmailTemplateLike>(raw);\n const name = String(obj.name ?? '').toUpperCase();\n return {\n SMTG: {\n HEADER: {\n TMPL_ID: name,\n TMPL_NAME: obj.templateName,\n TMPL_TYPE: obj.templateType,\n TMPL_CATEGORY: obj.templateCategory,\n TMPL_LANGU: isoToSapLang(obj.masterLanguage || obj.language),\n },\n HEADER_T: obj.headerTexts?.length\n ? {\n item: obj.headerTexts.map((t) => ({\n NAME: t.name,\n DESCRIPTION: t.description,\n LANGU: isoToSapLang(\n t.language || obj.masterLanguage || obj.language,\n ),\n })),\n }\n : undefined,\n CONTENT: obj.contents?.length\n ? {\n item: obj.contents.map((c) => ({\n TMPL_ID: name,\n LANGU: isoToSapLang(\n c.language || obj.masterLanguage || obj.language,\n ),\n SUBJECT: c.subject,\n BODY: c.body,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ SMTG }) => {\n const header = SMTG?.HEADER;\n const headerTexts = normalizeItems(SMTG?.HEADER_T?.item);\n const contents = normalizeItems(SMTG?.CONTENT?.item);\n const lang = sapLangToIso(header?.TMPL_LANGU);\n return {\n name: (header?.TMPL_ID ?? '').toUpperCase(),\n description: header?.TMPL_NAME,\n templateName: header?.TMPL_NAME,\n templateType: header?.TMPL_TYPE,\n templateCategory: header?.TMPL_CATEGORY,\n language: lang,\n masterLanguage: lang,\n headerTexts: mapItems(headerTexts, smtgHeaderTextFromXml),\n contents: mapItems(contents, smtgContentFromXml),\n };\n },\n});\n","/**\n * SFPF (Form Object) handler for abapGit format\n *\n * SAP Interactive Forms objects are XML-only. The abapGit format stores\n * the form header and the XDP layout (raw XML content).\n */\n\nimport { sfpf } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype FormObjectLike = {\n name: string;\n description?: string;\n state?: string;\n language?: string;\n type?: string;\n layout?: string;\n};\n\nexport const formObjectHandler = createHandler<FormObjectLike, typeof sfpf>(\n 'SFPF',\n {\n schema: sfpf,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SFPF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<FormObjectLike>(raw);\n return {\n SFPF: {\n HEADER: {\n NAME: String(obj.name ?? '').toUpperCase(),\n STATE: obj.state,\n LANGUAGE: isoToSapLang(obj.language),\n TYPE: obj.type,\n DESCRIPTION: obj.description,\n },\n LAYOUT: obj.layout\n ? {\n NAME: String(obj.name ?? '').toUpperCase(),\n XDP: obj.layout,\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ SFPF }) => ({\n name: (SFPF?.HEADER?.NAME ?? '').toUpperCase(),\n description: SFPF?.HEADER?.DESCRIPTION,\n state: SFPF?.HEADER?.STATE,\n language: sapLangToIso(SFPF?.HEADER?.LANGUAGE),\n type: SFPF?.HEADER?.TYPE,\n layout: SFPF?.LAYOUT?.XDP,\n }),\n },\n);\n","/**\n * SCP1 (Business Configuration Set) handler for abapGit format\n *\n * BC Sets are XML-only. The abapGit format stores attributes\n * (SCPRATTR), texts (SCPRTEXT), and values (SCPRVALS).\n */\n\nimport { scp1 } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { isoToSapLang, sapLangToIso } from '../lang';\n\ntype BusinessConfigSetLike = {\n name: string;\n description?: string;\n type?: string;\n clientDependent?: boolean;\n clientSpecific?: boolean;\n component?: string;\n minRelease?: string;\n maxRelease?: string;\n category?: string;\n refType?: string;\n refName?: string;\n orgId?: string;\n actInfo?: string;\n texts?: Array<{\n language?: string;\n text?: string;\n }>;\n values?: Array<{\n tableName?: string;\n fieldName?: string;\n value?: string;\n }>;\n};\n\nexport const businessConfigSetHandler = createHandler<\n BusinessConfigSetLike,\n typeof scp1\n>('SCP1', {\n schema: scp1,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SCP1',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const name = String(obj.name ?? '').toUpperCase();\n // Ensure description is included in texts (and first, since\n // fromAbapGit reads texts[0] as the description)\n const allTexts = [...(obj.texts ?? [])];\n if (obj.description) {\n const idx = allTexts.findIndex((t) => t.text === obj.description);\n if (idx === -1) {\n allTexts.unshift({\n language: obj.texts?.[0]?.language ?? 'en',\n text: obj.description,\n });\n } else if (idx > 0) {\n allTexts.unshift(allTexts.splice(idx, 1)[0]);\n }\n }\n return {\n SCP1: {\n SCPRATTR: {\n ID: name,\n TYPE: obj.type,\n CLI_DEP: obj.clientDependent ? 'X' : undefined,\n CLI_CAS: obj.clientSpecific ? 'X' : undefined,\n COMPONENT: obj.component,\n MINRELEASE: obj.minRelease,\n MAXRELEASE: obj.maxRelease,\n CATEGORY: obj.category,\n REFTYPE: obj.refType,\n REFNAME: obj.refName,\n ORGID: obj.orgId,\n ACT_INFO: obj.actInfo,\n },\n SCPRTEXT: allTexts.length\n ? {\n item: allTexts.map((t) => ({\n PROFID: name,\n LANGU: isoToSapLang(t.language),\n TEXT: t.text,\n })),\n }\n : undefined,\n SCPRVALS: obj.values?.length\n ? {\n item: obj.values.map((v) => ({\n PROFID: name,\n TABLENAME: v.tableName,\n FIELDNAME: v.fieldName,\n VALUE: v.value,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ SCP1 }) => {\n const texts = normalizeItems(SCP1?.SCPRTEXT?.item);\n const values = normalizeItems(SCP1?.SCPRVALS?.item);\n const firstText = texts[0];\n return {\n name: (SCP1?.SCPRATTR?.ID ?? '').toUpperCase(),\n description: firstText?.TEXT,\n type: SCP1?.SCPRATTR?.TYPE,\n clientDependent: SCP1?.SCPRATTR?.CLI_DEP === 'X',\n clientSpecific: SCP1?.SCPRATTR?.CLI_CAS === 'X',\n component: SCP1?.SCPRATTR?.COMPONENT,\n minRelease: SCP1?.SCPRATTR?.MINRELEASE,\n maxRelease: SCP1?.SCPRATTR?.MAXRELEASE,\n category: SCP1?.SCPRATTR?.CATEGORY,\n refType: SCP1?.SCPRATTR?.REFTYPE,\n refName: SCP1?.SCPRATTR?.REFNAME,\n orgId: SCP1?.SCPRATTR?.ORGID,\n actInfo: SCP1?.SCPRATTR?.ACT_INFO,\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.LANGU),\n text: t.TEXT,\n })),\n values: mapItems(values, (v) => ({\n tableName: v.TABLENAME,\n fieldName: v.FIELDNAME,\n value: v.VALUE,\n })),\n };\n },\n});\n","/**\n * SICF (ICF Service) handler for abapGit format\n *\n * ICF services are XML-only. The abapGit format stores the service URL,\n * ICF service metadata, documentation, handler table, and OTR texts.\n */\n\nimport { sicf } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype SicfOtrText = {\n concept?: string;\n paket?: string;\n creaLan?: string;\n aliasName?: string;\n entries?: Array<{\n langu?: string;\n object?: string;\n lfdNum?: string;\n text?: string;\n }>;\n};\n\ntype IcfServiceLike = {\n name: string;\n description?: string;\n url?: string;\n language?: string;\n handlerClass?: string;\n handlers?: Array<{ handler?: string; order?: string }>;\n parent?: string;\n auth?: string;\n otrTexts?: SicfOtrText[];\n otrUses?: Array<{\n pgmid?: string;\n object?: string;\n objName?: string;\n concept?: string;\n lfdNum?: string;\n }>;\n};\n\nexport const icfServiceHandler = createHandler<IcfServiceLike, typeof sicf>(\n 'SICF',\n {\n schema: sicf,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SICF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<IcfServiceLike>(raw);\n const name = String(obj.name ?? '').toUpperCase();\n const lang = isoToSapLang(obj.language);\n const handlers = obj.handlers?.length\n ? obj.handlers\n : obj.handlerClass\n ? [{ handler: obj.handlerClass }]\n : [];\n return {\n URL: obj.url ?? '',\n ICFSERVICE: {\n ICF_NAME: name,\n ICFALTNME: name,\n ORIG_NAME: name,\n ICF_PARENT: obj.parent,\n ICF_AUTH: obj.auth,\n },\n ICFDOCU: {\n ICF_NAME: name,\n LANGU: lang,\n DESCRIPT: obj.description ?? '',\n },\n ICFHANDLER_TABLE: handlers.length\n ? {\n ICFHANDLER: handlers.map((h, i) => ({\n ICF_NAME: name,\n ICFHANDLER: h.handler,\n ICFHANDLERORDER: h.order ?? String(i + 1),\n })),\n }\n : undefined,\n SOTS: obj.otrTexts?.length\n ? {\n item: obj.otrTexts.map((t) => ({\n HEADER: {\n CONCEPT: t.concept,\n PAKET: t.paket,\n CREA_LAN: t.creaLan,\n ALIAS_NAME: t.aliasName,\n },\n ENTRIES: t.entries?.length\n ? {\n item: t.entries.map((e) => ({\n CONCEPT: t.concept,\n LANGU: e.langu,\n OBJECT: e.object,\n LFD_NUM: e.lfdNum,\n TEXT: e.text,\n })),\n }\n : undefined,\n })),\n }\n : undefined,\n SOTS_USE: obj.otrUses?.length\n ? {\n item: obj.otrUses.map((u) => ({\n PGMID: u.pgmid,\n OBJECT: u.object,\n OBJ_NAME: u.objName ?? name,\n CONCEPT: u.concept,\n LFD_NUM: u.lfdNum,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({\n URL,\n ICFSERVICE,\n ICFDOCU,\n ICFHANDLER_TABLE,\n SOTS,\n SOTS_USE,\n }) => {\n const handlers = normalizeItems(ICFHANDLER_TABLE?.ICFHANDLER);\n const otrTexts = normalizeItems(SOTS?.item);\n const otrUses = normalizeItems(SOTS_USE?.item);\n return {\n name: (ICFSERVICE?.ICF_NAME ?? '').toUpperCase(),\n description: ICFDOCU?.DESCRIPT,\n url: URL,\n language: sapLangToIso(ICFDOCU?.LANGU),\n handlerClass: handlers[0]?.ICFHANDLER,\n handlers: mapItems(handlers, (h) => ({\n handler: h.ICFHANDLER,\n order: h.ICFHANDLERORDER,\n })),\n parent: ICFSERVICE?.ICF_PARENT,\n auth: ICFSERVICE?.ICF_AUTH,\n otrTexts: mapItems(otrTexts, (t) => ({\n concept: t.HEADER?.CONCEPT,\n paket: t.HEADER?.PAKET,\n creaLan: t.HEADER?.CREA_LAN,\n aliasName: t.HEADER?.ALIAS_NAME,\n entries: normalizeItems(t.ENTRIES?.item).map((e) => ({\n langu: e.LANGU,\n object: e.OBJECT,\n lfdNum: e.LFD_NUM,\n text: e.TEXT,\n })),\n })),\n otrUses: mapItems(otrUses, (u) => ({\n pgmid: u.PGMID,\n object: u.OBJECT,\n objName: u.OBJ_NAME,\n concept: u.CONCEPT,\n lfdNum: u.LFD_NUM,\n })),\n };\n },\n },\n);\n","/**\n * SRFC (RFC Service / UCON RFC Service) handler for abapGit format\n *\n * RFC services are XML-only. The abapGit format stores the UCONRFC\n * complete data structure under a single SRFC node.\n */\n\nimport { srfc } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype RfcServiceLike = {\n name: string;\n description?: string;\n funcname?: string;\n scope?: string;\n version?: string;\n};\n\nexport const rfcServiceHandler = createHandler<RfcServiceLike, typeof srfc>(\n 'SRFC',\n {\n schema: srfc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SRFC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<RfcServiceLike>(raw);\n return {\n SRFC: {\n ID: String(obj.name ?? '').toUpperCase(),\n VERSION: obj.version ?? 'A',\n SCOPE: obj.scope,\n FUNCNAME: obj.funcname,\n TEXT: obj.description,\n },\n };\n },\n\n fromAbapGit: ({ SRFC }) => ({\n name: (SRFC?.ID ?? '').toUpperCase(),\n description: SRFC?.TEXT,\n funcname: SRFC?.FUNCNAME,\n scope: SRFC?.SCOPE,\n version: SRFC?.VERSION,\n }),\n },\n);\n","/**\n * IDOC (IDoc type) handler for abapGit format\n *\n * IDoc types are XML-only. The abapGit format stores attributes\n * (EDI_IAPI01) and syntax table (EDI_IAPI02) under an IDOC node.\n */\n\nimport { idoc } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype IdocTypeLike = {\n name: string;\n description?: string;\n released?: string;\n closed?: string;\n applrel?: string;\n firsttyp?: string;\n pretyp?: string;\n succtyp?: string;\n lasttyp?: string;\n generated?: string;\n syntax?: Array<{\n nr?: string;\n segtyp?: string;\n parseg?: string;\n parpno?: string;\n parflg?: string;\n mustfl?: string;\n }>;\n};\n\nexport const idocTypeHandler = createHandler<IdocTypeLike, typeof idoc>(\n 'IDOC',\n {\n schema: idoc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_IDOC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<IdocTypeLike>(raw);\n return {\n IDOC: {\n ATTRIBUTES: {\n IDOCTYP: String(obj.name ?? '').toUpperCase(),\n DESCRP: obj.description,\n CLOSED: obj.closed,\n RELEASED: obj.released,\n APPLREL: obj.applrel,\n FIRSTTYP: obj.firsttyp,\n PRETYP: obj.pretyp,\n SUCCTYP: obj.succtyp,\n LASTTYP: obj.lasttyp,\n GENERATED: obj.generated,\n },\n T_SYNTAX: obj.syntax?.length\n ? {\n EDI_IAPI02: obj.syntax.map((s) => ({\n NR: s.nr,\n SEGTYP: s.segtyp,\n PARSEG: s.parseg,\n PARPNO: s.parpno,\n PARFLG: s.parflg,\n MUSTFL: s.mustfl,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ IDOC }) => {\n const syntax = normalizeItems(IDOC?.T_SYNTAX?.EDI_IAPI02);\n return {\n name: (IDOC?.ATTRIBUTES?.IDOCTYP ?? '').toUpperCase(),\n description: IDOC?.ATTRIBUTES?.DESCRP,\n released: IDOC?.ATTRIBUTES?.RELEASED,\n closed: IDOC?.ATTRIBUTES?.CLOSED,\n applrel: IDOC?.ATTRIBUTES?.APPLREL,\n firsttyp: IDOC?.ATTRIBUTES?.FIRSTTYP,\n pretyp: IDOC?.ATTRIBUTES?.PRETYP,\n succtyp: IDOC?.ATTRIBUTES?.SUCCTYP,\n lasttyp: IDOC?.ATTRIBUTES?.LASTTYP,\n generated: IDOC?.ATTRIBUTES?.GENERATED,\n syntax: mapItems(syntax, (s) => ({\n nr: s.NR,\n segtyp: s.SEGTYP,\n parseg: s.PARSEG,\n parpno: s.PARPNO,\n parflg: s.PARFLG,\n mustfl: s.MUSTFL,\n })),\n };\n },\n },\n);\n","/**\n * IOBJ (InfoObject - BW) handler for abapGit format\n *\n * InfoObjects are XML-only. The abapGit format stores details (BAPI6108),\n * compounds, and attributes as flat siblings under values.\n */\n\nimport { iobj } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype InfoObjectLike = {\n name: string;\n description?: string;\n shortText?: string;\n type?: string;\n version?: string;\n objStat?: string;\n activFl?: string;\n fieldName?: string;\n contRel?: string;\n dataTp?: string;\n intLen?: string;\n outputLen?: string;\n lowCase?: string;\n convExit?: string;\n keyFigName?: string;\n compounds?: Array<{ iobjnm?: string; compound?: string }>;\n attributes?: Array<{\n atrnm?: string;\n objstat?: string;\n attrib?: string;\n kyfnm?: string;\n }>;\n};\n\nexport const infoObjectHandler = createHandler<InfoObjectLike, typeof iobj>(\n 'IOBJ',\n {\n schema: iobj,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_IOBJ',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<InfoObjectLike>(raw);\n return {\n IOBJ: {\n INFOOBJECT: String(obj.name ?? '').toUpperCase(),\n VERSION: obj.version ?? 'A',\n TYPE: obj.type,\n OBJSTAT: obj.objStat,\n ACTIVFL: obj.activFl,\n FIELDNM: obj.fieldName,\n CONTREL: obj.contRel,\n DATATP: obj.dataTp,\n INTLEN: obj.intLen,\n OUTPUTLEN: obj.outputLen,\n LOWCASE: obj.lowCase,\n CONVEXIT: obj.convExit,\n KYFNM: obj.keyFigName,\n TXTLONG: obj.description,\n TXTSHRT: obj.shortText,\n },\n COMPOUNDS: obj.compounds?.length\n ? {\n BAPI6108CM: obj.compounds.map((c) => ({\n IOBJNM_Z: c.iobjnm,\n COMPOUND: c.compound,\n })),\n }\n : undefined,\n ATTRIBUTES: obj.attributes?.length\n ? {\n BAPI6108AT: obj.attributes.map((a) => ({\n ATRNM: a.atrnm,\n OBJSTAT: a.objstat,\n ATTRIB: a.attrib,\n KYFNM: a.kyfnm,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ IOBJ, COMPOUNDS, ATTRIBUTES }) => {\n const compounds = normalizeItems(COMPOUNDS?.BAPI6108CM);\n const attributes = normalizeItems(ATTRIBUTES?.BAPI6108AT);\n return {\n name: (IOBJ?.INFOOBJECT ?? '').toUpperCase(),\n description: IOBJ?.TXTLONG,\n shortText: IOBJ?.TXTSHRT,\n type: IOBJ?.TYPE,\n version: IOBJ?.VERSION,\n objStat: IOBJ?.OBJSTAT,\n activFl: IOBJ?.ACTIVFL,\n fieldName: IOBJ?.FIELDNM,\n contRel: IOBJ?.CONTREL,\n dataTp: IOBJ?.DATATP,\n intLen: IOBJ?.INTLEN,\n outputLen: IOBJ?.OUTPUTLEN,\n lowCase: IOBJ?.LOWCASE,\n convExit: IOBJ?.CONVEXIT,\n keyFigName: IOBJ?.KYFNM,\n compounds: mapItems(compounds, (c) => ({\n iobjnm: c.IOBJNM_Z,\n compound: c.COMPOUND,\n })),\n attributes: mapItems(attributes, (a) => ({\n atrnm: a.ATRNM,\n objstat: a.OBJSTAT,\n attrib: a.ATTRIB,\n kyfnm: a.KYFNM,\n })),\n };\n },\n },\n);\n","/**\n * ODSO (DataStore Object - BW) handler for abapGit format\n *\n * DataStore Objects are XML-only. The abapGit format stores details\n * (BAPI6116) and info objects (BAPI6116IO) as flat siblings under values.\n */\n\nimport { odso } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype DataStoreObjectLike = {\n name: string;\n description?: string;\n shortText?: string;\n odsotype?: string;\n version?: string;\n sizeCategory?: string;\n dataClass?: string;\n noEdSfl?: string;\n keyNotUnique?: string;\n imofl?: string;\n planningMode?: string;\n actViewGen?: string;\n infoObjects?: Array<{\n infoobject?: string;\n version?: string;\n keyflag?: string;\n }>;\n navigation?: unknown;\n indexes?: unknown;\n indexIobj?: unknown;\n};\n\nexport const dataStoreObjectHandler = createHandler<\n DataStoreObjectLike,\n typeof odso\n>('ODSO', {\n schema: odso,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ODSO',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<DataStoreObjectLike>(raw);\n return {\n ODSO: {\n ODSOBJECT: String(obj.name ?? '').toUpperCase(),\n ODSOTYPE: obj.odsotype,\n OBJVERS: obj.version ?? 'A',\n ODSASIZCAT: obj.sizeCategory,\n ODSADATCLS: obj.dataClass,\n NOEDSFL: obj.noEdSfl,\n KEY_NOT_UNIQUE: obj.keyNotUnique,\n IMOFL: obj.imofl,\n PLANNING_MODE: obj.planningMode,\n ACTVIEWGEN: obj.actViewGen,\n TXTLG: obj.description,\n TXTSH: obj.shortText,\n },\n INFOOBJECTS: obj.infoObjects?.length\n ? {\n BAPI6116IO: obj.infoObjects.map((io) => ({\n INFOBJECT: io.infoobject,\n OBJVERS: io.version,\n KEYFLAG: io.keyflag,\n })),\n }\n : undefined,\n NAVIGATION: obj.navigation,\n INDEXES: obj.indexes,\n INDEX_IOBJ: obj.indexIobj,\n };\n },\n\n fromAbapGit: ({ ODSO, INFOOBJECTS, NAVIGATION, INDEXES, INDEX_IOBJ }) => {\n const infoObjects = normalizeItems(INFOOBJECTS?.BAPI6116IO);\n return {\n name: (ODSO?.ODSOBJECT ?? '').toUpperCase(),\n description: ODSO?.TXTLG,\n shortText: ODSO?.TXTSH,\n odsotype: ODSO?.ODSOTYPE,\n version: ODSO?.OBJVERS,\n sizeCategory: ODSO?.ODSASIZCAT,\n dataClass: ODSO?.ODSADATCLS,\n noEdSfl: ODSO?.NOEDSFL,\n keyNotUnique: ODSO?.KEY_NOT_UNIQUE,\n imofl: ODSO?.IMOFL,\n planningMode: ODSO?.PLANNING_MODE,\n actViewGen: ODSO?.ACTVIEWGEN,\n infoObjects: mapItems(infoObjects, (io) => ({\n infoobject: io.INFOBJECT,\n version: io.OBJVERS,\n keyflag: io.KEYFLAG,\n })),\n navigation: NAVIGATION,\n indexes: INDEXES,\n indexIobj: INDEX_IOBJ,\n };\n },\n});\n","/**\n * SHMA (Shared Memory Area) handler for abapGit format\n *\n * Shared memory areas are XML-only. The abapGit format stores area\n * attributes under a SHMA node.\n */\n\nimport { shma } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype SharedMemoryAreaLike = {\n name: string;\n description?: string;\n root?: string;\n autoBuild?: string;\n hasVersions?: string;\n transactional?: string;\n clientDependent?: string;\n lifeContext?: string;\n propagationKind?: string;\n displaceKind?: string;\n maxVersions?: string;\n maxAreaSize?: string;\n maxVersionSize?: string;\n};\n\nexport const sharedMemoryAreaHandler = createHandler<\n SharedMemoryAreaLike,\n typeof shma\n>('SHMA', {\n schema: shma,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SHMA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SHMA: {\n AREA_NAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPT: obj.description,\n ROOT: obj.root,\n AUTO_BUILD: obj.autoBuild,\n HAS_VERSIONS: obj.hasVersions,\n TRANSACTIONAL: obj.transactional,\n CLIENT_DEPENDENT: obj.clientDependent,\n LIFE_CONTEXT: obj.lifeContext,\n PROPAGATION_KIND: obj.propagationKind,\n DISPLACE_KIND: obj.displaceKind,\n MAX_VERSIONS: obj.maxVersions,\n MAX_AREA_SIZE: obj.maxAreaSize,\n MAX_VERSION_SIZE: obj.maxVersionSize,\n },\n }),\n\n fromAbapGit: ({ SHMA }) => ({\n name: (SHMA?.AREA_NAME ?? '').toUpperCase(),\n description: SHMA?.DESCRIPT,\n root: SHMA?.ROOT,\n autoBuild: SHMA?.AUTO_BUILD,\n hasVersions: SHMA?.HAS_VERSIONS,\n transactional: SHMA?.TRANSACTIONAL,\n clientDependent: SHMA?.CLIENT_DEPENDENT,\n lifeContext: SHMA?.LIFE_CONTEXT,\n propagationKind: SHMA?.PROPAGATION_KIND,\n displaceKind: SHMA?.DISPLACE_KIND,\n maxVersions: SHMA?.MAX_VERSIONS,\n maxAreaSize: SHMA?.MAX_AREA_SIZE,\n maxVersionSize: SHMA?.MAX_VERSION_SIZE,\n }),\n});\n","/**\n * STYL (SAPscript Style) handler for abapGit format\n *\n * SAPscript styles are XML-only. The abapGit format stores\n * header, paragraphs, strings, and tabs under a STYLE node.\n */\n\nimport { styl } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype StyleLike = {\n name: string;\n description?: string;\n language?: string;\n origLanguage?: string;\n printer?: string;\n firstParagraph?: string;\n cpi?: string;\n lpi?: string;\n transtat?: string;\n status?: string;\n pageForm?: string;\n pageHeight?: string;\n pageWidth?: string;\n family?: string;\n version?: string;\n pvers?: string;\n paragraphs?: Array<{\n paragraph?: string;\n text?: string;\n justify?: string;\n lineDist?: string;\n top?: string;\n bot?: string;\n left?: string;\n right?: string;\n }>;\n strings?: Array<{\n string?: string;\n text?: string;\n mark?: string;\n sup?: string;\n sub?: string;\n hidden?: string;\n protline?: string;\n }>;\n tabs?: Array<{\n paragraph?: string;\n position?: string;\n tabPos?: string;\n tjustify?: string;\n }>;\n};\n\nexport const styleHandler = createHandler<StyleLike, typeof styl>('STYL', {\n schema: styl,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_STYL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<StyleLike>(raw);\n return {\n STYLE: {\n HEADER: {\n TDSTYLE: String(obj.name ?? '').toUpperCase(),\n TDSPRAS: isoToSapLang(obj.language),\n TDOSPRAS: isoToSapLang(obj.origLanguage),\n TDPRINTER: obj.printer,\n TDTEXT: obj.description,\n TDFIRSTPAR: obj.firstParagraph,\n TDCPI: obj.cpi,\n TDLPI: obj.lpi,\n TDTRANSTAT: obj.transtat,\n TDSTATUS: obj.status,\n TDPAGEFORM: obj.pageForm,\n TDPAGHEIGH: obj.pageHeight,\n TDPAGWIDTH: obj.pageWidth,\n TDFAMILY: obj.family,\n TDVERSION: obj.version,\n PVERS: obj.pvers,\n },\n PARAGRAPHS: obj.paragraphs?.length\n ? {\n item: obj.paragraphs.map((p) => ({\n TDPARGRAPH: p.paragraph,\n TDTEXT: p.text,\n TDPJUSTIFY: p.justify,\n TDPLDIST: p.lineDist,\n TDPTOP: p.top,\n TDPBOT: p.bot,\n TDPLEFT: p.left,\n TDPRIGHT: p.right,\n })),\n }\n : undefined,\n STRINGS: obj.strings?.length\n ? {\n item: obj.strings.map((s) => ({\n TDSTRING: s.string,\n TDTEXT: s.text,\n TDMARK: s.mark,\n TDSUPER: s.sup,\n TDSUB: s.sub,\n TDHIDDEN: s.hidden,\n TDPROTLINE: s.protline,\n })),\n }\n : undefined,\n TABS: obj.tabs?.length\n ? {\n item: obj.tabs.map((t) => ({\n TDPARGRAPH: t.paragraph,\n TDPOSITION: t.position,\n TDTABPOS: t.tabPos,\n TDTJUSTIFY: t.tjustify,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ STYLE }) => {\n const paragraphs = normalizeItems(STYLE?.PARAGRAPHS?.item);\n const strings = normalizeItems(STYLE?.STRINGS?.item);\n const tabs = normalizeItems(STYLE?.TABS?.item);\n return {\n name: (STYLE?.HEADER?.TDSTYLE ?? '').toUpperCase(),\n description: STYLE?.HEADER?.TDTEXT,\n language: sapLangToIso(STYLE?.HEADER?.TDSPRAS),\n origLanguage: sapLangToIso(STYLE?.HEADER?.TDOSPRAS),\n printer: STYLE?.HEADER?.TDPRINTER,\n firstParagraph: STYLE?.HEADER?.TDFIRSTPAR,\n cpi: STYLE?.HEADER?.TDCPI,\n lpi: STYLE?.HEADER?.TDLPI,\n transtat: STYLE?.HEADER?.TDTRANSTAT,\n status: STYLE?.HEADER?.TDSTATUS,\n pageForm: STYLE?.HEADER?.TDPAGEFORM,\n pageHeight: STYLE?.HEADER?.TDPAGHEIGH,\n pageWidth: STYLE?.HEADER?.TDPAGWIDTH,\n family: STYLE?.HEADER?.TDFAMILY,\n version: STYLE?.HEADER?.TDVERSION,\n pvers: STYLE?.HEADER?.PVERS,\n paragraphs: mapItems(paragraphs, (p) => ({\n paragraph: p.TDPARGRAPH,\n text: p.TDTEXT,\n justify: p.TDPJUSTIFY,\n lineDist: p.TDPLDIST,\n top: p.TDPTOP,\n bot: p.TDPBOT,\n left: p.TDPLEFT,\n right: p.TDPRIGHT,\n })),\n strings: mapItems(strings, (s) => ({\n string: s.TDSTRING,\n text: s.TDTEXT,\n mark: s.TDMARK,\n sup: s.TDSUPER,\n sub: s.TDSUB,\n hidden: s.TDHIDDEN,\n protline: s.TDPROTLINE,\n })),\n tabs: mapItems(tabs, (t) => ({\n paragraph: t.TDPARGRAPH,\n position: t.TDPOSITION,\n tabPos: t.TDTABPOS,\n tjustify: t.TDTJUSTIFY,\n })),\n };\n },\n});\n","/**\n * SUSC (SAP Authorization Object Class) handler for abapGit format\n *\n * Authorization object classes are XML-only. The abapGit format stores\n * TOBC (class header) and TOBCT (class text) nodes.\n */\n\nimport { susc } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype AuthObjectClassLike = {\n name: string;\n description?: string;\n language?: string;\n};\n\nexport const authObjectClassHandler = createHandler<\n AuthObjectClassLike,\n typeof susc\n>('SUSC', {\n schema: susc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SUSC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n TOBC: {\n OCLSS: String(obj.name ?? '').toUpperCase(),\n },\n TOBCT: {\n LANGU: isoToSapLang(obj.language),\n OCLSS: String(obj.name ?? '').toUpperCase(),\n CTEXT: obj.description,\n },\n }),\n\n fromAbapGit: ({ TOBC, TOBCT }) => ({\n name: (TOBC?.OCLSS ?? TOBCT?.OCLSS ?? '').toUpperCase(),\n description: TOBCT?.CTEXT,\n language: sapLangToIso(TOBCT?.LANGU),\n }),\n});\n","/**\n * SUCU (Customer Authorization Group) handler for abapGit format\n *\n * Uses the generic serializer. The abapGit format stores\n * TBRG_AUTH (authorization groups) and TBRG_AUTHT (texts) nodes.\n */\n\nimport { sucu } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype AuthGroupLike = {\n name: string;\n object?: string;\n description?: string;\n language?: string;\n texts?: Array<{\n language?: string;\n text?: string;\n }>;\n};\n\nexport const authGroupHandler = createHandler<AuthGroupLike, typeof sucu>(\n 'SUCU',\n {\n schema: sucu,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SUCU',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<AuthGroupLike>(raw);\n\n const name = String(obj.name ?? '').toUpperCase();\n return {\n TBRG_AUTH: {\n item: [{ BRGRU: name, OBJECT: obj.object }],\n },\n TBRG_AUTHT: {\n item: (obj.texts?.length\n ? obj.texts\n : [{ language: obj.language, text: obj.description }]\n ).map((t) => ({\n SPRAS: isoToSapLang(t.language ?? obj.language),\n BRGRU: name,\n OBJECT: obj.object,\n BEZEI: t.text ?? obj.description,\n })),\n },\n };\n },\n\n fromAbapGit: ({ TBRG_AUTH, TBRG_AUTHT }) => {\n const auths = normalizeItems(TBRG_AUTH?.item);\n const texts = normalizeItems(TBRG_AUTHT?.item);\n const firstAuth = auths[0];\n const firstText = texts[0];\n return {\n name: (firstAuth?.BRGRU ?? '').toUpperCase(),\n object: firstAuth?.OBJECT,\n description: firstText?.BEZEI,\n language: sapLangToIso(firstText?.SPRAS),\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.BEZEI,\n })),\n };\n },\n },\n);\n","/**\n * SXCI (Classic BAdI Implementation) handler for abapGit format\n *\n * Classic BAdI implementations are XML-only. The abapGit format stores\n * implementation data under a single SXCI node.\n */\n\nimport { sxci } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype BadiImplementationLike = {\n name: string;\n description?: string;\n implementationClass?: string;\n exitName?: string;\n interfaceName?: string;\n active?: boolean;\n};\n\nexport const badiImplementationHandler = createHandler<\n BadiImplementationLike,\n typeof sxci\n>('SXCI', {\n schema: sxci,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SXCI',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SXCI: {\n IMPLEMENTATION_DATA: {\n IMP_NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.description,\n IMP_CLASS: obj.implementationClass,\n EXIT_NAME: obj.exitName,\n INTER_NAME: obj.interfaceName,\n ACTIVE: obj.active ? 'X' : undefined,\n },\n },\n }),\n\n fromAbapGit: ({ SXCI }) => ({\n name: (SXCI?.IMPLEMENTATION_DATA?.IMP_NAME ?? '').toUpperCase(),\n description: SXCI?.IMPLEMENTATION_DATA?.TEXT,\n implementationClass: SXCI?.IMPLEMENTATION_DATA?.IMP_CLASS,\n exitName: SXCI?.IMPLEMENTATION_DATA?.EXIT_NAME,\n interfaceName: SXCI?.IMPLEMENTATION_DATA?.INTER_NAME,\n active: SXCI?.IMPLEMENTATION_DATA?.ACTIVE === 'X',\n }),\n});\n","/**\n * SMIM (MIME Repository Object) handler for abapGit format\n *\n * MIME objects have an XML metadata file plus an optional binary\n * companion file `{name}.smim.{filename}` for non-folder objects\n * (upstream build_filename: obj_name.obj_type.filename).\n */\n\nimport { smim } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { formatAbapGitXml } from '../xml-format';\n\ntype MimeObjectLike = {\n name: string;\n url?: string;\n isFolder?: boolean;\n class?: string;\n fileName?: string;\n mimeType?: string;\n description?: string;\n parentFolderId?: string;\n /** Binary payload (base64) for non-folder MIME objects */\n content?: string;\n};\n\nexport const mimeObjectHandler = createHandler<MimeObjectLike, typeof smim>(\n 'SMIM',\n {\n schema: smim,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SMIM',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n URL: obj.url ?? '',\n FOLDER: obj.isFolder ? 'X' : undefined,\n CLASS: obj.class,\n EXTRA: {\n FILE_NAME: obj.fileName,\n MIMETYPE: obj.mimeType,\n DESCRIPTION: obj.description,\n PARENT_FOLDER_ID: obj.parentFolderId,\n },\n }),\n\n serialize: async (obj, ctx) => {\n const objectName = ctx.getObjectName(obj);\n const files = [\n ctx.createFile(\n `${objectName}.smim.xml`,\n formatAbapGitXml(ctx.toAbapGitXml(obj)),\n ),\n ];\n if (obj.content && obj.fileName) {\n files.push(\n ctx.createFile(\n `${objectName}.smim.${obj.fileName.toLowerCase()}`,\n obj.content,\n 'base64',\n ),\n );\n }\n return files;\n },\n\n // Binary companion {name}.smim.{filename} is collected as a source\n // during deserialization (base64-encoded by the deserializer).\n setSources: (obj, sources) => {\n const data = unwrapData<Record<string, unknown>>(obj);\n for (const [fileName, content] of Object.entries(sources)) {\n data.fileName = data.fileName ?? fileName;\n data.content = content;\n }\n },\n\n fromAbapGit: ({ URL, FOLDER, CLASS, EXTRA }) => ({\n name: '',\n url: URL,\n isFolder: FOLDER === 'X',\n class: CLASS,\n fileName: EXTRA?.FILE_NAME,\n mimeType: EXTRA?.MIMETYPE,\n description: EXTRA?.DESCRIPTION,\n parentFolderId: EXTRA?.PARENT_FOLDER_ID,\n }),\n },\n);\n","/**\n * SQSC (Database Procedure Proxy) handler for abapGit format\n *\n * Database procedure proxies are XML-only. The abapGit format stores\n * description, header, parameters, and parameter types under a single SQSC node.\n */\n\nimport { sqsc } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype DbProcProxyLike = {\n name: string;\n description?: string;\n dbRepositoryPackage?: string;\n dbRepositoryProcName?: string;\n dbCatalogSchema?: string;\n dbCatalogProcName?: string;\n readOnly?: boolean;\n interfacePool?: string;\n parameters?: Array<{\n position?: string;\n dbName?: string;\n direction?: string;\n kind?: string;\n dbTableTypeSchema?: string;\n dbTableTypeName?: string;\n dbTableTypeIsDdic?: boolean;\n transferTableSchema?: string;\n transferTableName?: string;\n abapName?: string;\n abapNameIsRo?: boolean;\n ddicTable?: string;\n ddicTableIsRo?: boolean;\n }>;\n parameterTypes?: Array<{\n paramPosition?: string;\n compIndex?: string;\n dbCompName?: string;\n abapCompName?: string;\n abapCompNameIsRo?: boolean;\n dbType?: string;\n dbTypeText?: string;\n abapTypeIsRo?: boolean;\n ddicType?: string;\n ddicTypeIsRo?: boolean;\n }>;\n};\n\nexport const dbProcProxyHandler = createHandler<DbProcProxyLike, typeof sqsc>(\n 'SQSC',\n {\n schema: sqsc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SQSC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<DbProcProxyLike>(raw);\n return {\n SQSC: {\n DESCRIPTION: obj.description,\n HEADER: {\n DB_REPOSITORY_PACKAGE: obj.dbRepositoryPackage,\n DB_REPOSITORY_PROC_NAME: obj.dbRepositoryProcName,\n DB_CATALOG_SCHEMA: obj.dbCatalogSchema,\n DB_CATALOG_PROC_NAME: obj.dbCatalogProcName,\n READ_ONLY: obj.readOnly ? 'X' : undefined,\n INTERFACE_POOL: obj.interfacePool,\n },\n PARAMETERS: obj.parameters?.length\n ? {\n item: obj.parameters.map((p) => ({\n POSITION: p.position,\n DB_NAME: p.dbName,\n DIRECTION: p.direction,\n KIND: p.kind,\n DB_TABLE_TYPE_SCHEMA: p.dbTableTypeSchema,\n DB_TABLE_TYPE_NAME: p.dbTableTypeName,\n DB_TABLE_TYPE_IS_DDIC: p.dbTableTypeIsDdic ? 'X' : undefined,\n TRANSFER_TABLE_SCHEMA: p.transferTableSchema,\n TRANSFER_TABLE_NAME: p.transferTableName,\n ABAP_NAME: p.abapName,\n ABAP_NAME_IS_RO: p.abapNameIsRo ? 'X' : undefined,\n DDIC_TABLE: p.ddicTable,\n DDIC_TABLE_IS_RO: p.ddicTableIsRo ? 'X' : undefined,\n })),\n }\n : undefined,\n PARAMETER_TYPES: obj.parameterTypes?.length\n ? {\n item: obj.parameterTypes.map((t) => ({\n PARAM_POSITION: t.paramPosition,\n COMP_INDEX: t.compIndex,\n DB_COMP_NAME: t.dbCompName,\n ABAP_COMP_NAME: t.abapCompName,\n ABAP_COMP_NAME_IS_RO: t.abapCompNameIsRo ? 'X' : undefined,\n DB_TYPE: t.dbType,\n DB_TYPE_TEXT: t.dbTypeText,\n ABAP_TYPE_IS_RO: t.abapTypeIsRo ? 'X' : undefined,\n DDIC_TYPE: t.ddicType,\n DDIC_TYPE_IS_RO: t.ddicTypeIsRo ? 'X' : undefined,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ SQSC }) => {\n const parameters = normalizeItems(SQSC?.PARAMETERS?.item);\n const parameterTypes = normalizeItems(SQSC?.PARAMETER_TYPES?.item);\n return {\n name: '',\n description: SQSC?.DESCRIPTION,\n dbRepositoryPackage: SQSC?.HEADER?.DB_REPOSITORY_PACKAGE,\n dbRepositoryProcName: SQSC?.HEADER?.DB_REPOSITORY_PROC_NAME,\n dbCatalogSchema: SQSC?.HEADER?.DB_CATALOG_SCHEMA,\n dbCatalogProcName: SQSC?.HEADER?.DB_CATALOG_PROC_NAME,\n readOnly: SQSC?.HEADER?.READ_ONLY === 'X',\n interfacePool: SQSC?.HEADER?.INTERFACE_POOL,\n parameters: mapItems(parameters, (p) => ({\n position: p.POSITION,\n dbName: p.DB_NAME,\n direction: p.DIRECTION,\n kind: p.KIND,\n dbTableTypeSchema: p.DB_TABLE_TYPE_SCHEMA,\n dbTableTypeName: p.DB_TABLE_TYPE_NAME,\n dbTableTypeIsDdic: p.DB_TABLE_TYPE_IS_DDIC === 'X',\n transferTableSchema: p.TRANSFER_TABLE_SCHEMA,\n transferTableName: p.TRANSFER_TABLE_NAME,\n abapName: p.ABAP_NAME,\n abapNameIsRo: p.ABAP_NAME_IS_RO === 'X',\n ddicTable: p.DDIC_TABLE,\n ddicTableIsRo: p.DDIC_TABLE_IS_RO === 'X',\n })),\n parameterTypes: mapItems(parameterTypes, (t) => ({\n paramPosition: t.PARAM_POSITION,\n compIndex: t.COMP_INDEX,\n dbCompName: t.DB_COMP_NAME,\n abapCompName: t.ABAP_COMP_NAME,\n abapCompNameIsRo: t.ABAP_COMP_NAME_IS_RO === 'X',\n dbType: t.DB_TYPE,\n dbTypeText: t.DB_TYPE_TEXT,\n abapTypeIsRo: t.ABAP_TYPE_IS_RO === 'X',\n ddicType: t.DDIC_TYPE,\n ddicTypeIsRo: t.DDIC_TYPE_IS_RO === 'X',\n })),\n };\n },\n },\n);\n","/**\n * SUSO (Authorization Object) handler for abapGit format\n *\n * Authorization objects are XML-only. The abapGit format stores\n * TOBJ (object header) and TOBJT (object text) nodes.\n */\n\nimport { suso } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype AuthObjectLike = {\n name: string;\n description?: string;\n language?: string;\n fields?: string[];\n authClass?: string;\n fblock?: string;\n conversion?: string;\n};\n\nexport const authObjectHandler = createHandler<AuthObjectLike, typeof suso>(\n 'SUSO',\n {\n schema: suso,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SUSO',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<AuthObjectLike>(raw);\n const name = String(obj.name ?? '').toUpperCase();\n const fields = obj.fields ?? [];\n return {\n TOBJ: {\n OBJCT: name,\n FIEL1: fields[0],\n FIEL2: fields[1],\n FIEL3: fields[2],\n FIEL4: fields[3],\n FIEL5: fields[4],\n FIEL6: fields[5],\n FIEL7: fields[6],\n FIEL8: fields[7],\n FIEL9: fields[8],\n FIEL0: fields[9],\n OCLSS: obj.authClass,\n FBLOCK: obj.fblock,\n CONVERSION: obj.conversion,\n },\n TOBJT: {\n LANGU: isoToSapLang(obj.language),\n OBJECT: name,\n TTEXT: obj.description,\n },\n };\n },\n\n fromAbapGit: ({ TOBJ, TOBJT }) => {\n const fields = [\n TOBJ?.FIEL1,\n TOBJ?.FIEL2,\n TOBJ?.FIEL3,\n TOBJ?.FIEL4,\n TOBJ?.FIEL5,\n TOBJ?.FIEL6,\n TOBJ?.FIEL7,\n TOBJ?.FIEL8,\n TOBJ?.FIEL9,\n TOBJ?.FIEL0,\n ].filter(Boolean) as string[];\n return {\n name: (TOBJ?.OBJCT ?? '').toUpperCase(),\n description: TOBJT?.TTEXT,\n language: sapLangToIso(TOBJT?.LANGU),\n fields,\n authClass: TOBJ?.OCLSS,\n fblock: TOBJ?.FBLOCK,\n conversion: TOBJ?.CONVERSION,\n };\n },\n },\n);\n","/**\n * SUSH (Authorization Object Hierarchy) handler for abapGit format\n *\n * Authorization object hierarchies are XML-only. The abapGit format stores\n * HEAD, USOBX, and USOBT nodes.\n */\n\nimport { sush } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype AuthHierarchyLike = {\n name: string;\n displayName?: string;\n usobx?: Array<{\n name?: string;\n type?: string;\n object?: string;\n okFlag?: string;\n }>;\n usobt?: Array<{\n name?: string;\n type?: string;\n object?: string;\n field?: string;\n low?: string;\n high?: string;\n }>;\n};\n\nexport const authHierarchyHandler = createHandler<\n AuthHierarchyLike,\n typeof sush\n>('SUSH', {\n schema: sush,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SUSH',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n HEAD: {\n DISPLAY_NAME: obj.displayName ?? String(obj.name ?? '').toUpperCase(),\n },\n USOBX: obj.usobx?.length\n ? {\n item: obj.usobx.map((u) => ({\n NAME: u.name,\n TYPE: u.type,\n OBJECT: u.object,\n OKFLAG: u.okFlag,\n })),\n }\n : undefined,\n USOBT: obj.usobt?.length\n ? {\n item: obj.usobt.map((u) => ({\n NAME: u.name,\n TYPE: u.type,\n OBJECT: u.object,\n FIELD: u.field,\n LOW: u.low,\n HIGH: u.high,\n })),\n }\n : undefined,\n }),\n\n fromAbapGit: ({ HEAD, USOBX, USOBT }) => {\n const usobx = normalizeItems(USOBX?.item);\n const usobt = normalizeItems(USOBT?.item);\n return {\n name: (HEAD?.DISPLAY_NAME ?? '').toUpperCase(),\n displayName: HEAD?.DISPLAY_NAME,\n usobx: mapItems(usobx, (u) => ({\n name: u.NAME,\n type: u.TYPE,\n object: u.OBJECT,\n okFlag: u.OKFLAG,\n })),\n usobt: mapItems(usobt, (u) => ({\n name: u.NAME,\n type: u.TYPE,\n object: u.OBJECT,\n field: u.FIELD,\n low: u.LOW,\n high: u.HIGH,\n })),\n };\n },\n});\n","/**\n * SKTD (Knowledge Transfer Document) handler for abapGit format\n *\n * KTD objects are XML-only. The abapGit format stores metadata and\n * reference object info under a single SKTD node.\n */\n\nimport { sktd } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport {\n abapLangVerFromAdt,\n abapLangVerToAdt,\n isoToSapLang,\n sapLangToIso,\n} from '../lang';\n\ntype KtdDocumentLike = {\n name: string;\n description?: string;\n masterLanguage?: string;\n responsible?: string;\n abapLanguageVersion?: string;\n refObjectUri?: string;\n refObjectDescription?: string;\n};\n\nexport const ktdDocumentHandler = createHandler<KtdDocumentLike, typeof sktd>(\n 'SKTD',\n {\n schema: sktd,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SKTD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<KtdDocumentLike>(raw);\n return {\n SKTD: {\n METADATA: {\n MASTER_LANGUAGE: isoToSapLang(obj.masterLanguage),\n RESPONSIBLE: obj.responsible,\n ABAP_LANGUAGE_VERSION: abapLangVerFromAdt(obj.abapLanguageVersion),\n },\n REF_OBJECT: {\n URI: obj.refObjectUri,\n DESCRIPTION: obj.refObjectDescription ?? obj.description,\n },\n },\n };\n },\n\n fromAbapGit: ({ SKTD }) => ({\n name: '',\n description: SKTD?.REF_OBJECT?.DESCRIPTION,\n masterLanguage: sapLangToIso(SKTD?.METADATA?.MASTER_LANGUAGE),\n responsible: SKTD?.METADATA?.RESPONSIBLE,\n abapLanguageVersion: abapLangVerToAdt(\n SKTD?.METADATA?.ABAP_LANGUAGE_VERSION,\n ),\n refObjectUri: SKTD?.REF_OBJECT?.URI,\n refObjectDescription: SKTD?.REF_OBJECT?.DESCRIPTION,\n }),\n },\n);\n","/**\n * FORM (SAPscript Form) handler for abapGit format\n *\n * SAPscript forms are multi-file XML. The main .form.xml stores\n * form header, text header, pages, windows, paragraphs, strings, tabs.\n * Language-specific tdlines files store the actual text content as\n * `{name}.form.tdlines_{lang}.xml` companion documents.\n */\n\nimport { form, tdlines } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { formatAbapGitXml } from '../xml-format';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype TdlineRow = { line?: string; format?: string };\n\ntype FormLike = {\n name: string;\n description?: string;\n language?: string;\n firstPage?: string;\n pages?: Array<{ pageName?: string; nextPage?: string }>;\n windows?: Array<{ window?: string; pageName?: string }>;\n pageWindows?: Array<{ window?: string; pageName?: string }>;\n paragraphs?: Array<{ paragraph?: string; text?: string }>;\n strings?: Array<{ string?: string; text?: string; mark?: string }>;\n tabs?: Array<{ paragraph?: string; position?: string }>;\n /** Text lines keyed by ISO language (e.g. { en: [{line, format}] }) */\n tdlines?: Record<string, TdlineRow[]>;\n};\n\nexport const formHandler = createHandler<FormLike, typeof form>('FORM', {\n schema: form,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_FORM',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const name = String(obj.name ?? '').toUpperCase();\n const lang = isoToSapLang(obj.language);\n return {\n FORM: {\n item: [\n {\n FORM_HEADER: {\n TDFORM: name,\n TDSPRAS: lang,\n TDFIRSTPAG: obj.firstPage,\n TDTEXT: obj.description,\n },\n TEXT_HEADER: {\n TDOBJECT: 'FORM',\n TDNAME: name,\n TDID: 'ST',\n TDSPRAS: lang,\n TDFORM: name,\n },\n ORIG_LANGUAGE: lang,\n PAGES: obj.pages?.length\n ? {\n item: obj.pages.map((p) => ({\n PAGENAME: p.pageName,\n NEXTPAGE: p.nextPage,\n })),\n }\n : undefined,\n WINDOWS: obj.windows?.length\n ? {\n item: obj.windows.map((w) => ({\n WINDOW: w.window,\n PAGENAME: w.pageName,\n })),\n }\n : undefined,\n PAGE_WINDOWS: obj.pageWindows?.length\n ? {\n item: obj.pageWindows.map((w) => ({\n TDWINDOW: w.window,\n PAGENAME: w.pageName,\n })),\n }\n : undefined,\n PARAGRAPHS: obj.paragraphs?.length\n ? {\n item: obj.paragraphs.map((p) => ({\n TDPARGRAPH: p.paragraph,\n TDTEXT: p.text,\n })),\n }\n : undefined,\n STRINGS: obj.strings?.length\n ? {\n item: obj.strings.map((s) => ({\n TDSTRING: s.string,\n TDTEXT: s.text,\n TDMARK: s.mark,\n })),\n }\n : undefined,\n TABS: obj.tabs?.length\n ? {\n item: obj.tabs.map((t) => ({\n TDPARGRAPH: t.paragraph,\n TDPOSITION: t.position,\n })),\n }\n : undefined,\n },\n ],\n },\n };\n },\n\n serialize: async (obj, ctx) => {\n const objectName = ctx.getObjectName(obj);\n const files = [\n ctx.createFile(\n `${objectName}.form.xml`,\n formatAbapGitXml(ctx.toAbapGitXml(obj)),\n ),\n ];\n for (const [lang, lines] of Object.entries(obj.tdlines ?? {})) {\n if (!lines.length) continue;\n const xml = tdlines.build(\n {\n abap: {\n version: '1.0',\n values: {\n TDLINES: {\n item: lines.map((l) => ({\n TDLINE: l.line,\n TDFORMAT: l.format,\n })),\n },\n },\n },\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_FORM',\n serializer_version: 'v1.0.0',\n } as never,\n { pretty: true },\n );\n files.push(\n ctx.createFile(\n `${objectName}.form.tdlines_${isoToSapLang(lang).toLowerCase()}.xml`,\n formatAbapGitXml(xml),\n ),\n );\n }\n return files;\n },\n\n // Language-specific tdlines companion files ({name}.form.tdlines_{lang}.xml)\n // are collected as sources during deserialization.\n setSources: (obj, sources) => {\n const data = unwrapData<Record<string, unknown>>(obj);\n const tdlinesData = (data.tdlines ?? {}) as Record<string, TdlineRow[]>;\n for (const [key, content] of Object.entries(sources)) {\n const match = key.match(/^tdlines_([a-zA-Z0-9]+)$/);\n if (!match) continue;\n const parsed = tdlines.parse(content) as {\n abapGit?: { abap?: { values?: { TDLINES?: { item?: unknown } } } };\n };\n const items = normalizeItems(\n parsed.abapGit?.abap?.values?.TDLINES?.item,\n ) as Array<{ TDLINE?: string; TDFORMAT?: string }>;\n tdlinesData[sapLangToIso(match[1].toUpperCase())] = items.map((l) => ({\n line: l.TDLINE,\n format: l.TDFORMAT,\n }));\n }\n if (Object.keys(tdlinesData).length) data.tdlines = tdlinesData;\n },\n\n fromAbapGit: ({ FORM }) => {\n const items = normalizeItems(FORM?.item);\n const data = items[0];\n const pages = normalizeItems(data?.PAGES?.item);\n const windows = normalizeItems(data?.WINDOWS?.item);\n const pageWindows = normalizeItems(data?.PAGE_WINDOWS?.item);\n const paragraphs = normalizeItems(data?.PARAGRAPHS?.item);\n const strings = normalizeItems(data?.STRINGS?.item);\n const tabs = normalizeItems(data?.TABS?.item);\n return {\n name: (data?.FORM_HEADER?.TDFORM ?? '').toUpperCase(),\n description: data?.FORM_HEADER?.TDTEXT,\n language: sapLangToIso(data?.FORM_HEADER?.TDSPRAS ?? data?.ORIG_LANGUAGE),\n firstPage: data?.FORM_HEADER?.TDFIRSTPAG,\n pages: mapItems(pages, (p) => ({\n pageName: p.PAGENAME,\n nextPage: p.NEXTPAGE,\n })),\n windows: mapItems(windows, (w) => ({\n window: w.WINDOW,\n pageName: w.PAGENAME,\n })),\n pageWindows: mapItems(pageWindows, (w) => ({\n window: w.TDWINDOW,\n pageName: w.PAGENAME,\n })),\n paragraphs: mapItems(paragraphs, (p) => ({\n paragraph: p.TDPARGRAPH,\n text: p.TDTEXT,\n })),\n strings: mapItems(strings, (s) => ({\n string: s.TDSTRING,\n text: s.TDTEXT,\n mark: s.TDMARK,\n })),\n tabs: mapItems(tabs, (t) => ({\n paragraph: t.TDPARGRAPH,\n position: t.TDPOSITION,\n })),\n };\n },\n});\n","/**\n * XINX (Extension Index) handler for abapGit format\n */\n\nimport { xinx } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype ExtensionIndexLike = {\n name: string;\n tableName?: string;\n indexName?: string;\n description?: string;\n unique?: boolean;\n fields?: Array<{ position?: string; fieldName?: string }>;\n};\n\nexport const extensionIndexHandler = createHandler<\n ExtensionIndexLike,\n typeof xinx\n>('XINX', {\n schema: xinx,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_XINX',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n XINX: {\n DD12V: {\n SQLTAB: obj.tableName,\n INDEXNAME: obj.indexName ?? String(obj.name ?? '').toUpperCase(),\n DDTEXT: obj.description,\n UNIQUEFLAG: obj.unique ? 'X' : undefined,\n },\n T_DD17V: obj.fields?.length\n ? {\n DD17V: obj.fields.map((f) => ({\n POSITION: f.position,\n FIELDNAME: f.fieldName,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ XINX }) => {\n const dd17v = normalizeItems(XINX?.T_DD17V?.DD17V);\n return {\n name: (XINX?.DD12V?.INDEXNAME ?? '').toUpperCase(),\n tableName: XINX?.DD12V?.SQLTAB,\n indexName: XINX?.DD12V?.INDEXNAME,\n description: XINX?.DD12V?.DDTEXT,\n unique: XINX?.DD12V?.UNIQUEFLAG === 'X',\n fields: mapItems(dd17v, (f) => ({\n position: f.POSITION,\n fieldName: f.FIELDNAME,\n })),\n };\n },\n});\n","/**\n * PARA (SPA/GPA Parameter) handler for abapGit format\n */\n\nimport { para } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype SpagpaParamLike = {\n name: string;\n description?: string;\n language?: string;\n};\n\nexport const spagpaParamHandler = createHandler<SpagpaParamLike, typeof para>(\n 'PARA',\n {\n schema: para,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PARA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SpagpaParamLike>(raw);\n\n const name = String(obj.name ?? '').toUpperCase();\n const lang = isoToSapLang(obj.language);\n return {\n TPARA: { PARAMID: name, PARTEXT: obj.description },\n TPARAT: { PARAMID: name, SPRACHE: lang, PARTEXT: obj.description },\n };\n },\n\n fromAbapGit: ({ TPARA, TPARAT }) => ({\n name: (TPARA?.PARAMID ?? '').toUpperCase(),\n description: TPARAT?.PARTEXT ?? TPARA?.PARTEXT,\n language: sapLangToIso(TPARAT?.SPRACHE),\n }),\n },\n);\n","/**\n * PERS (Personalization Object) handler for abapGit format\n */\n\nimport { pers } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype PersonalizationObjLike = {\n name: string;\n description?: string;\n language?: string;\n accessClass?: string;\n distribClass?: string;\n dialogFb?: string;\n component?: string;\n datatype?: string;\n typename?: string;\n};\n\nexport const personalizationHandler = createHandler<\n PersonalizationObjLike,\n typeof pers\n>('PERS', {\n schema: pers,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PERS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<PersonalizationObjLike>(raw);\n return {\n PERS: {\n PERS_REG: {\n item: [\n {\n PERS_KEY: String(obj.name ?? '').toUpperCase(),\n ACCESS_CL: obj.accessClass,\n DISTRIB_CL: obj.distribClass,\n DIALOG_FB: obj.dialogFb,\n COMPONENT: obj.component,\n DATATYPE: obj.datatype,\n TYPENAME: obj.typename,\n },\n ],\n },\n PERS_REG_TEXT: {\n item: [\n {\n LANG: isoToSapLang(obj.language),\n PERS_KEY: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.description,\n },\n ],\n },\n },\n };\n },\n\n fromAbapGit: ({ PERS }) => {\n const reg = normalizeItems(PERS?.PERS_REG?.item)[0];\n const text = normalizeItems(PERS?.PERS_REG_TEXT?.item)[0];\n return {\n name: (reg?.PERS_KEY ?? '').toUpperCase(),\n description: text?.TEXT,\n language: sapLangToIso(text?.LANG),\n accessClass: reg?.ACCESS_CL,\n distribClass: reg?.DISTRIB_CL,\n dialogFb: reg?.DIALOG_FB,\n component: reg?.COMPONENT,\n datatype: reg?.DATATYPE,\n typename: reg?.TYPENAME,\n };\n },\n});\n","/**\n * OA2P (OAuth 2.0 Profile) handler for abapGit format\n */\n\nimport { oa2p } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype Oauth2ProfileLike = {\n name: string;\n profile?: string;\n type?: string;\n header?: string;\n scopes?: Array<{ scope?: string; description?: string }>;\n};\n\nexport const oauth2ProfileHandler = createHandler<\n Oauth2ProfileLike,\n typeof oa2p\n>('OA2P', {\n schema: oa2p,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_OA2P',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n PROFILE: {\n PROFILE: obj.profile ?? String(obj.name ?? '').toUpperCase(),\n TYPE: obj.type,\n HEADER: obj.header,\n T_SCOPES: obj.scopes?.length\n ? {\n item: obj.scopes.map((s) => ({\n SCOPE: s.scope,\n DESCRIPTION: s.description,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ PROFILE }) => {\n const scopes = normalizeItems(PROFILE?.T_SCOPES?.item);\n return {\n name: (PROFILE?.PROFILE ?? '').toUpperCase(),\n profile: PROFILE?.PROFILE,\n type: PROFILE?.TYPE,\n header: PROFILE?.HEADER,\n scopes: mapItems(scopes, (s) => ({\n scope: s.SCOPE,\n description: s.DESCRIPTION,\n })),\n };\n },\n});\n","/**\n * SPLO (Spool Description) handler for abapGit format\n */\n\nimport { splo } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype SpoolDescLike = {\n name: string;\n description?: string;\n language?: string;\n format?: string;\n orientation?: string;\n type?: string;\n columns?: string;\n rows?: string;\n paper?: string;\n listArea?: string;\n};\n\nexport const spoolDescHandler = createHandler<SpoolDescLike, typeof splo>(\n 'SPLO',\n {\n schema: splo,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SPLO',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SpoolDescLike>(raw);\n return {\n TSPLT: {\n SPRAS: isoToSapLang(obj.language),\n PAPART: String(obj.name ?? '').toUpperCase(),\n TXT: obj.description,\n },\n TSPLD: {\n PAPART: String(obj.name ?? '').toUpperCase(),\n PFORMAT: obj.format,\n ORIENT: obj.orientation,\n TYPE: obj.type,\n OUTCOLUMNS: obj.columns,\n OUTROWS: obj.rows,\n LISTAREA: obj.listArea,\n },\n TSP0P: {\n PDPAPER: obj.paper,\n },\n };\n },\n\n fromAbapGit: ({ TSPLT, TSPLD, TSP0P }) => ({\n name: (TSPLT?.PAPART ?? TSPLD?.PAPART ?? '').toUpperCase(),\n description: TSPLT?.TXT,\n language: sapLangToIso(TSPLT?.SPRAS),\n format: TSPLD?.PFORMAT,\n orientation: TSPLD?.ORIENT,\n type: TSPLD?.TYPE,\n columns: TSPLD?.OUTCOLUMNS,\n rows: TSPLD?.OUTROWS,\n listArea: TSPLD?.LISTAREA,\n paper: TSP0P?.PDPAPER,\n }),\n },\n);\n","/**\n * TOBJ (Definition Maintenance and Transport Object) handler for abapGit format\n */\n\nimport { tobj } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype TransportObjectLike = {\n name: string;\n objectType?: string;\n description?: string;\n language?: string;\n clientDependent?: boolean;\n languageDependent?: boolean;\n category?: string;\n transportable?: boolean;\n tableName?: string;\n mainClass?: string;\n contClass?: string;\n};\n\nexport const transportObjectHandler = createHandler<\n TransportObjectLike,\n typeof tobj\n>('TOBJ', {\n schema: tobj,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_TOBJ',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => {\n const name = String(obj.name ?? '').toUpperCase();\n return {\n OBJH: {\n OBJECTNAME: name,\n OBJECTTYPE: obj.objectType ?? 'L',\n CLIDEP: obj.clientDependent ? 'X' : undefined,\n LANGDEP: obj.languageDependent ? 'X' : undefined,\n OBJCATEG: obj.category,\n OBJTRANSP: obj.transportable ? 'X' : undefined,\n },\n OBJT: {\n LANGUAGE: isoToSapLang(obj.language),\n OBJECTNAME: name,\n OBJECTTYPE: obj.objectType ?? 'L',\n DDTEXT: obj.description,\n },\n TOBJ: {\n TDDAT: {\n TABNAME: obj.tableName,\n MCLASS: obj.mainClass,\n CCLASS: obj.contClass,\n },\n },\n };\n },\n\n fromAbapGit: ({ OBJH, OBJT, TOBJ }) => ({\n name: (OBJH?.OBJECTNAME ?? '').toUpperCase(),\n objectType: OBJH?.OBJECTTYPE,\n description: OBJT?.DDTEXT,\n language: sapLangToIso(OBJT?.LANGUAGE),\n clientDependent: OBJH?.CLIDEP === 'X',\n languageDependent: OBJH?.LANGDEP === 'X',\n category: OBJH?.OBJCATEG,\n transportable: OBJH?.OBJTRANSP === 'X',\n tableName: TOBJ?.TDDAT?.TABNAME,\n mainClass: TOBJ?.TDDAT?.MCLASS,\n contClass: TOBJ?.TDDAT?.CCLASS,\n }),\n});\n","/**\n * SPRX (Proxy Object) handler for abapGit format\n */\n\nimport { sprx } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype ProxyObjectLike = {\n name: string;\n headers?: Array<{\n object?: string;\n objName?: string;\n inactive?: string;\n ifrType?: string;\n ifrName?: string;\n ifrNspce?: string;\n ifrGnspce?: string;\n }>;\n data?: Array<{\n object?: string;\n objName?: string;\n object1?: string;\n objName1?: string;\n inactive?: string;\n ifrType?: string;\n ifrName?: string;\n ifrText?: string;\n r3Type?: string;\n r3Name?: string;\n }>;\n};\n\nexport const proxyObjectHandler = createHandler<ProxyObjectLike, typeof sprx>(\n 'SPRX',\n {\n schema: sprx,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SPRX',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<ProxyObjectLike>(raw);\n return {\n PROXY_HEADER: obj.headers?.length\n ? {\n item: obj.headers.map((h) => ({\n OBJECT: h.object,\n OBJ_NAME: h.objName,\n INACTIVE: h.inactive,\n IFR_TYPE: h.ifrType,\n IFR_NAME: h.ifrName,\n IFR_NSPCE: h.ifrNspce,\n IFR_GNSPCE: h.ifrGnspce,\n })),\n }\n : undefined,\n PROXY_DATA: obj.data?.length\n ? {\n item: obj.data.map((d) => ({\n OBJECT: d.object,\n OBJ_NAME: d.objName,\n OBJECT1: d.object1,\n OBJ_NAME1: d.objName1,\n INACTIVE: d.inactive,\n IFR_TYPE: d.ifrType,\n IFR_NAME: d.ifrName,\n IFR_TEXT: d.ifrText,\n R3_TYPE: d.r3Type,\n R3_NAME: d.r3Name,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ PROXY_HEADER, PROXY_DATA }) => {\n const headers = normalizeItems(PROXY_HEADER?.item);\n const data = normalizeItems(PROXY_DATA?.item);\n return {\n name: (headers[0]?.OBJ_NAME ?? '').toUpperCase(),\n headers: mapItems(headers, (h) => ({\n object: h.OBJECT,\n objName: h.OBJ_NAME,\n inactive: h.INACTIVE,\n ifrType: h.IFR_TYPE,\n ifrName: h.IFR_NAME,\n ifrNspce: h.IFR_NSPCE,\n ifrGnspce: h.IFR_GNSPCE,\n })),\n data: mapItems(data, (d) => ({\n object: d.OBJECT,\n objName: d.OBJ_NAME,\n object1: d.OBJECT1,\n objName1: d.OBJ_NAME1,\n inactive: d.INACTIVE,\n ifrType: d.IFR_TYPE,\n ifrName: d.IFR_NAME,\n ifrText: d.IFR_TEXT,\n r3Type: d.R3_TYPE,\n r3Name: d.R3_NAME,\n })),\n };\n },\n },\n);\n","/**\n * SOTS (OTR Texts) handler for abapGit format\n */\n\nimport { sots } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype OtrTextLike = {\n name: string;\n concept?: string;\n language?: string;\n texts?: Array<{\n langu?: string;\n object?: string;\n lfdNum?: string;\n text?: string;\n }>;\n};\n\nexport const otrTextHandler = createHandler<OtrTextLike, typeof sots>('SOTS', {\n schema: sots,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SOTS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<OtrTextLike>(raw);\n return {\n SOTS: {\n item: [\n {\n HEADER: {\n CONCEPT: obj.concept ?? String(obj.name ?? '').toUpperCase(),\n CREA_LAN: isoToSapLang(obj.language),\n },\n ENTRIES: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n CONCEPT:\n obj.concept ?? String(obj.name ?? '').toUpperCase(),\n LANGU: isoToSapLang(t.langu ?? obj.language),\n OBJECT: t.object,\n LFD_NUM: t.lfdNum,\n TEXT: t.text,\n })),\n }\n : undefined,\n },\n ],\n },\n };\n },\n\n fromAbapGit: ({ SOTS }) => {\n const items = normalizeItems(SOTS?.item);\n const first = items[0];\n const entries = normalizeItems(first?.ENTRIES?.item);\n return {\n name: (first?.HEADER?.CONCEPT ?? '').toUpperCase(),\n concept: first?.HEADER?.CONCEPT,\n language: sapLangToIso(first?.HEADER?.CREA_LAN),\n texts: mapItems(entries, (e) => ({\n langu: sapLangToIso(e.LANGU),\n object: e.OBJECT,\n lfdNum: e.LFD_NUM,\n text: e.TEXT,\n })),\n };\n },\n});\n","/**\n * Shared archive metadata mapping for IARP/IASP handlers\n *\n * Both types serialize identical ATTR + PARAMETERS structures;\n * the only difference is the object type and generated schema.\n */\n\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport type { AbapGitSchema } from '../abapgit-schema';\n\ntype ArchiveLike = {\n name: string;\n packageName?: string;\n version?: string;\n parameters?: Array<{ name?: string; value?: string }>;\n};\n\ntype ArchiveValues = {\n ATTR?: { NAME?: string; DEVCLASS?: string; VERSION?: string };\n PARAMETERS?: {\n item?:\n | { NAME?: string; VALUE?: string }\n | Array<{ NAME?: string; VALUE?: string }>;\n };\n};\n\nexport function createArchiveHandler<\n TSchema extends AbapGitSchema<unknown, ArchiveValues>,\n>(type: string, schema: TSchema) {\n return createHandler<ArchiveLike, TSchema>(type, {\n schema,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<ArchiveLike>(raw);\n return {\n ATTR: {\n NAME: String(obj.name ?? '').toUpperCase(),\n DEVCLASS: obj.packageName,\n VERSION: obj.version,\n },\n PARAMETERS: obj.parameters?.length\n ? {\n item: obj.parameters.map((p) => ({\n NAME: p.name,\n VALUE: p.value,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ ATTR, PARAMETERS }) => {\n const params = normalizeItems(PARAMETERS?.item);\n return {\n name: (ATTR?.NAME ?? '').toUpperCase(),\n packageName: ATTR?.DEVCLASS,\n version: ATTR?.VERSION,\n parameters: mapItems(params, (p) => ({ name: p.NAME, value: p.VALUE })),\n };\n },\n });\n}\n","/**\n * IARP (Archive Object) handler for abapGit format\n */\n\nimport { iarp } from '../../../schemas/generated';\nimport { createArchiveHandler } from './archive';\n\nexport const archiveObjectHandler = createArchiveHandler('IARP', iarp);\n","/**\n * IASP (Archive Path / Service) handler for abapGit format\n */\n\nimport { iasp } from '../../../schemas/generated';\nimport { createArchiveHandler } from './archive';\n\nexport const archivePathHandler = createArchiveHandler('IASP', iasp);\n","/**\n * CHAR (Characteristic) handler for abapGit format\n */\n\nimport { char } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype CharacteristicLike = {\n name: string;\n className?: string;\n format?: string;\n values?: string;\n texts?: Array<{\n language?: string;\n className?: string;\n description?: string;\n }>;\n};\n\nexport const characteristicHandler = createHandler<\n CharacteristicLike,\n typeof char\n>('CHAR', {\n schema: char,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CHAR',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n CHAR: {\n CLS_ATTRIBUTE: {\n CLSNAME: obj.className,\n ATNAM: String(obj.name ?? '').toUpperCase(),\n ATFOR: obj.format,\n ATVOR: obj.values,\n },\n CLS_ATTRIBUTET: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n SPRAS: isoToSapLang(t.language),\n CLSNAME: t.className ?? obj.className,\n ATBEZ: t.description,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ CHAR }) => {\n const texts = normalizeItems(CHAR?.CLS_ATTRIBUTET?.item);\n return {\n name: (CHAR?.CLS_ATTRIBUTE?.ATNAM ?? '').toUpperCase(),\n className: CHAR?.CLS_ATTRIBUTE?.CLSNAME,\n format: CHAR?.CLS_ATTRIBUTE?.ATFOR,\n values: CHAR?.CLS_ATTRIBUTE?.ATVOR,\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRAS),\n className: t.CLSNAME,\n description: t.ATBEZ,\n })),\n };\n },\n});\n","/**\n * AUTH (Authorization Field) handler for abapGit format\n */\n\nimport { auth } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype AuthFieldLike = {\n name: string;\n rollName?: string;\n authClass?: string;\n datatype?: string;\n length?: string;\n outputLength?: string;\n lowercase?: boolean;\n lng?: string;\n};\n\nexport const authFieldHandler = createHandler<AuthFieldLike, typeof auth>(\n 'AUTH',\n {\n schema: auth,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_AUTH',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<AuthFieldLike>(raw);\n return {\n AUTHX: {\n FIELDNAME: String(obj.name ?? '').toUpperCase(),\n ROLLNAME: obj.rollName,\n AUTHCLASS: obj.authClass,\n DATATYPE: obj.datatype,\n LENG: obj.length,\n OUTPUTLEN: obj.outputLength,\n LOWERCASE: obj.lowercase ? 'X' : undefined,\n LNG: obj.lng,\n },\n };\n },\n\n fromAbapGit: ({ AUTHX }) => ({\n name: (AUTHX?.FIELDNAME ?? '').toUpperCase(),\n rollName: AUTHX?.ROLLNAME,\n authClass: AUTHX?.AUTHCLASS,\n datatype: AUTHX?.DATATYPE,\n length: AUTHX?.LENG,\n outputLength: AUTHX?.OUTPUTLEN,\n lowercase: AUTHX?.LOWERCASE === 'X',\n lng: AUTHX?.LNG,\n }),\n },\n);\n","/**\n * AREA (InfoArea) handler for abapGit format\n */\n\nimport { area } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype InfoAreaLike = {\n name: string;\n parentName?: string;\n shortText?: string;\n longText?: string;\n};\n\nexport const infoAreaHandler = createHandler<InfoAreaLike, typeof area>(\n 'AREA',\n {\n schema: area,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_AREA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<InfoAreaLike>(raw);\n return {\n NODENAME: String(obj.name ?? '').toUpperCase(),\n PARENTNAME: obj.parentName,\n TXTSH: obj.shortText,\n TXTLG: obj.longText,\n };\n },\n\n fromAbapGit: ({ NODENAME, PARENTNAME, TXTSH, TXTLG }) => ({\n name: (NODENAME ?? '').toUpperCase(),\n parentName: PARENTNAME,\n shortText: TXTSH,\n longText: TXTLG,\n }),\n },\n);\n","/**\n * AVAR (Activation Variant) handler for abapGit format\n */\n\nimport { avar } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype ActivationVariantLike = {\n name: string;\n description?: string;\n ids?: Array<{ objName?: string; objType?: string; active?: boolean }>;\n};\n\nexport const activationVariantHandler = createHandler<\n ActivationVariantLike,\n typeof avar\n>('AVAR', {\n schema: avar,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_AVAR',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DESCRIPTION: obj.description,\n IDS: obj.ids?.length\n ? {\n item: obj.ids.map((i) => ({\n OBJ_NAME: i.objName,\n OBJ_TYPE: i.objType,\n ACTIVE: i.active ? 'X' : undefined,\n })),\n }\n : undefined,\n }),\n\n fromAbapGit: ({ DESCRIPTION, IDS }) => {\n const ids = normalizeItems(IDS?.item);\n return {\n name: '',\n description: DESCRIPTION,\n ids: mapItems(ids, (i) => ({\n objName: i.OBJ_NAME,\n objType: i.OBJ_TYPE,\n active: i.ACTIVE === 'X',\n })),\n };\n },\n});\n","/**\n * JOBD (Job Definition) handler for abapGit format\n */\n\nimport { jobd } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype JobDefinitionLike = {\n name: string;\n repid?: string;\n packageName?: string;\n jobCount?: string;\n jobClass?: string;\n targetSystem?: string;\n};\n\nexport const jobDefinitionHandler = createHandler<\n JobDefinitionLike,\n typeof jobd\n>('JOBD', {\n schema: jobd,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_JOBD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n JOBD: {\n JOBNAME: String(obj.name ?? '').toUpperCase(),\n REPID: obj.repid,\n JDPACKAGE: obj.packageName,\n JOBCOUNT: obj.jobCount,\n JOBCLASS: obj.jobClass,\n BTCSYS: obj.targetSystem,\n },\n }),\n\n fromAbapGit: ({ JOBD }) => ({\n name: (JOBD?.JOBNAME ?? '').toUpperCase(),\n repid: JOBD?.REPID,\n packageName: JOBD?.JDPACKAGE,\n jobCount: JOBD?.JOBCOUNT,\n jobClass: JOBD?.JOBCLASS,\n targetSystem: JOBD?.BTCSYS,\n }),\n});\n","/**\n * NSPC (Namespace) handler for abapGit format\n */\n\nimport { nspc } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype NamespaceLike = {\n name: string;\n replicense?: string;\n sscrflag?: boolean;\n sapflag?: boolean;\n genOnly?: boolean;\n description?: string;\n language?: string;\n owner?: string;\n};\n\nexport const namespaceHandler = createHandler<NamespaceLike, typeof nspc>(\n 'NSPC',\n {\n schema: nspc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_NSPC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<NamespaceLike>(raw);\n return {\n NSPC: {\n NAMESPACE: String(obj.name ?? '').toUpperCase(),\n REPLICENSE: obj.replicense,\n SSCRFLAG: obj.sscrflag ? 'X' : undefined,\n SAPFLAG: obj.sapflag ? 'X' : undefined,\n GEN_ONLY: obj.genOnly ? 'X' : undefined,\n },\n NSPC_TEXT: {\n SPRAS: isoToSapLang(obj.language),\n DESCRIPTN: obj.description,\n OWNER: obj.owner,\n },\n };\n },\n\n fromAbapGit: ({ NSPC, NSPC_TEXT }) => ({\n name: (NSPC?.NAMESPACE ?? '').toUpperCase(),\n replicense: NSPC?.REPLICENSE,\n sscrflag: NSPC?.SSCRFLAG === 'X',\n sapflag: NSPC?.SAPFLAG === 'X',\n genOnly: NSPC?.GEN_ONLY === 'X',\n description: NSPC_TEXT?.DESCRIPTN,\n language: sapLangToIso(NSPC_TEXT?.SPRAS),\n owner: NSPC_TEXT?.OWNER,\n }),\n },\n);\n","/**\n * PINF (Package Interface) handler for abapGit format\n */\n\nimport { pinf } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype PackageInterfaceLike = {\n name: string;\n packageName?: string;\n description?: string;\n elements?: Array<{ elementName?: string; elementType?: string }>;\n};\n\nexport const packageInterfaceHandler = createHandler<\n PackageInterfaceLike,\n typeof pinf\n>('PINF', {\n schema: pinf,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PINF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<PackageInterfaceLike>(raw);\n const name = String(obj.name ?? '').toUpperCase();\n return {\n PINF: {\n ATTRIBUTES: {\n PACK_NAME: obj.packageName,\n INTF_NAME: name,\n DESCR: obj.description,\n },\n ELEMENTS: obj.elements?.length\n ? {\n item: obj.elements.map((e) => ({\n PACK_NAME: obj.packageName,\n INTF_NAME: name,\n ELEMENT_NAME: e.elementName,\n ELEMENT_TYPE: e.elementType,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ PINF }) => {\n const elements = normalizeItems(PINF?.ELEMENTS?.item);\n return {\n name: (PINF?.ATTRIBUTES?.INTF_NAME ?? '').toUpperCase(),\n packageName: PINF?.ATTRIBUTES?.PACK_NAME,\n description: PINF?.ATTRIBUTES?.DESCR,\n elements: mapItems(elements, (e) => ({\n elementName: e.ELEMENT_NAME,\n elementType: e.ELEMENT_TYPE,\n })),\n };\n },\n});\n","/**\n * VCLS (View Cluster) handler for abapGit format\n */\n\nimport { vcls } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype ViewClusterLike = {\n name: string;\n author?: string;\n changedDate?: string;\n structures?: Array<{ object?: string; objText?: string }>;\n maintenanceForms?: Array<{ object?: string; form?: string }>;\n};\n\nexport const viewClusterHandler = createHandler<ViewClusterLike, typeof vcls>(\n 'VCLS',\n {\n schema: vcls,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_VCLS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<ViewClusterLike>(raw);\n return {\n VCLDIR: {\n VCLNAME: String(obj.name ?? '').toUpperCase(),\n AUTHOR: obj.author,\n CHANGEDATE: obj.changedDate,\n },\n VCLSTRUC_TAB: obj.structures?.length\n ? {\n item: obj.structures.map((s) => ({\n VCLNAME: String(obj.name ?? '').toUpperCase(),\n OBJECT: s.object,\n OBJTEXT: s.objText,\n })),\n }\n : undefined,\n VCLMF_TAB: obj.maintenanceForms?.length\n ? {\n item: obj.maintenanceForms.map((m) => ({\n VCLNAME: String(obj.name ?? '').toUpperCase(),\n OBJECT: m.object,\n FORM: m.form,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ VCLDIR, VCLSTRUC_TAB, VCLMF_TAB }) => {\n const structures = normalizeItems(VCLSTRUC_TAB?.item);\n const forms = normalizeItems(VCLMF_TAB?.item);\n return {\n name: (VCLDIR?.VCLNAME ?? '').toUpperCase(),\n author: VCLDIR?.AUTHOR,\n changedDate: VCLDIR?.CHANGEDATE,\n structures: mapItems(structures, (s) => ({\n object: s.OBJECT,\n objText: s.OBJTEXT,\n })),\n maintenanceForms: mapItems(forms, (m) => ({\n object: m.OBJECT,\n form: m.FORM,\n })),\n };\n },\n },\n);\n","/**\n * STVI (Transaction Variant) handler for abapGit format\n */\n\nimport { stvi } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype TransactionVariantLike = {\n name: string;\n tcode?: string;\n variant?: string;\n text?: string;\n};\n\nexport const transactionVariantHandler = createHandler<\n TransactionVariantLike,\n typeof stvi\n>('STVI', {\n schema: stvi,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_STVI',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n STVI: {\n SHDTVCIU: {\n TCODE: obj.tcode,\n VARIANT: obj.variant ?? String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n },\n },\n }),\n\n fromAbapGit: ({ STVI }) => ({\n name: (STVI?.SHDTVCIU?.VARIANT ?? '').toUpperCase(),\n tcode: STVI?.SHDTVCIU?.TCODE,\n variant: STVI?.SHDTVCIU?.VARIANT,\n text: STVI?.SHDTVCIU?.TEXT,\n }),\n});\n","/**\n * Shared ODS metadata mapping for SOD1/SOD2 handlers\n *\n * Both types serialize an identical {TYPE}.METADATA structure;\n * the only difference is the object type and generated schema.\n */\n\nimport { createHandler, unwrapData } from '../base';\nimport type { AbapGitSchema } from '../abapgit-schema';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype OdsObjectLike = {\n name: string;\n masterLanguage?: string;\n};\n\ntype OdsValues = Record<\n string,\n { METADATA?: { NAME?: string; MASTER_LANGUAGE?: string } } | undefined\n>;\n\nexport function createOdsHandler<\n TSchema extends AbapGitSchema<unknown, OdsValues>,\n>(type: string, schema: TSchema) {\n return createHandler<OdsObjectLike, TSchema>(type, {\n schema,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<OdsObjectLike>(raw);\n return {\n [type]: {\n METADATA: {\n NAME: String(obj.name ?? '').toUpperCase(),\n MASTER_LANGUAGE: isoToSapLang(obj.masterLanguage),\n },\n },\n };\n },\n\n fromAbapGit: (values) => {\n const node = values[type];\n return {\n name: (node?.METADATA?.NAME ?? '').toUpperCase(),\n masterLanguage: sapLangToIso(node?.METADATA?.MASTER_LANGUAGE),\n };\n },\n });\n}\n","/**\n * SOD1 (ODS Object 1) handler for abapGit format\n */\n\nimport { sod1 } from '../../../schemas/generated';\nimport { createOdsHandler } from './sod';\n\nexport const odsObject1Handler = createOdsHandler('SOD1', sod1);\n","/**\n * SOD2 (ODS Object 2) handler for abapGit format\n */\n\nimport { sod2 } from '../../../schemas/generated';\nimport { createOdsHandler } from './sod';\n\nexport const odsObject2Handler = createOdsHandler('SOD2', sod2);\n","/**\n * SHI3 (Hierarchy Display) handler for abapGit format\n */\n\nimport { shi3 } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype HierarchyDisplayLike = {\n name: string;\n type?: string;\n titles?: Array<{ language?: string; text?: string }>;\n nodes?: Array<{ nodeId?: string; parentId?: string; text?: string }>;\n};\n\nexport const hierarchyDisplayHandler = createHandler<\n HierarchyDisplayLike,\n typeof shi3\n>('SHI3', {\n schema: shi3,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SHI3',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n TREE_HEAD: {\n TREE_ID: String(obj.name ?? '').toUpperCase(),\n TYPE: obj.type,\n },\n TREE_TITLES: obj.titles?.length\n ? {\n item: obj.titles.map((t) => ({\n SPRAS: isoToSapLang(t.language),\n TREE_ID: String(obj.name ?? '').toUpperCase(),\n TEXT: t.text,\n })),\n }\n : undefined,\n TREE_NODES: obj.nodes?.length\n ? {\n item: obj.nodes.map((n) => ({\n NODE_ID: n.nodeId,\n TREE_ID: String(obj.name ?? '').toUpperCase(),\n PARENT_ID: n.parentId,\n TEXT: n.text,\n })),\n }\n : undefined,\n }),\n\n fromAbapGit: ({ TREE_HEAD, TREE_TITLES, TREE_NODES }) => {\n const titles = normalizeItems(TREE_TITLES?.item);\n const nodes = normalizeItems(TREE_NODES?.item);\n return {\n name: (TREE_HEAD?.TREE_ID ?? '').toUpperCase(),\n type: TREE_HEAD?.TYPE,\n titles: mapItems(titles, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.TEXT,\n })),\n nodes: mapItems(nodes, (n) => ({\n nodeId: n.NODE_ID,\n parentId: n.PARENT_ID,\n text: n.TEXT,\n })),\n };\n },\n});\n","/**\n * SHI5 (Hierarchy Maintenance Extension) handler for abapGit format\n */\n\nimport { shi5 } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype HierarchyExtensionLike = {\n name: string;\n treeId?: string;\n texts?: Array<{ language?: string; text?: string }>;\n};\n\nexport const hierarchyExtensionHandler = createHandler<\n HierarchyExtensionLike,\n typeof shi5\n>('SHI5', {\n schema: shi5,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SHI5',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SHI5: {\n HEADER: {\n EXT_ID: String(obj.name ?? '').toUpperCase(),\n TREE_ID: obj.treeId,\n },\n TEXTS: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n SPRAS: isoToSapLang(t.language),\n EXT_ID: String(obj.name ?? '').toUpperCase(),\n TEXT: t.text,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ SHI5 }) => {\n const texts = normalizeItems(SHI5?.TEXTS?.item);\n return {\n name: (SHI5?.HEADER?.EXT_ID ?? '').toUpperCase(),\n treeId: SHI5?.HEADER?.TREE_ID,\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.TEXT,\n })),\n };\n },\n});\n","/**\n * SHI8 (Hierarchy Switch Assignment) handler for abapGit format\n */\n\nimport { shi8 } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype HierarchySwitchAssignmentLike = {\n name: string;\n switchId?: string;\n reaction?: string;\n treeId?: string;\n nodeId?: string;\n};\n\nexport const hierarchySwitchAssignmentHandler = createHandler<\n HierarchySwitchAssignmentLike,\n typeof shi8\n>('SHI8', {\n schema: shi8,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SHI8',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<HierarchySwitchAssignmentLike>(raw);\n return {\n SHI8: {\n SFW_ASS_ID: String(obj.name ?? '').toUpperCase(),\n SWITCH_ID: obj.switchId,\n REACTION: obj.reaction,\n TREE_ID: obj.treeId,\n NODE_ID: obj.nodeId,\n },\n };\n },\n\n fromAbapGit: ({ SHI8 }) => ({\n name: (SHI8?.SFW_ASS_ID ?? '').toUpperCase(),\n switchId: SHI8?.SWITCH_ID,\n reaction: SHI8?.REACTION,\n treeId: SHI8?.TREE_ID,\n nodeId: SHI8?.NODE_ID,\n }),\n});\n","/**\n * SCVI (Screen Variant) handler for abapGit format\n */\n\nimport { scvi } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype ScreenVariantLike = {\n name: string;\n tcode?: string;\n screen?: string;\n variant?: string;\n text?: string;\n};\n\nexport const screenVariantHandler = createHandler<\n ScreenVariantLike,\n typeof scvi\n>('SCVI', {\n schema: scvi,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SCVI',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SCVI: {\n SHDSVCI: {\n TCODE: obj.tcode,\n SCREEN: obj.screen,\n VARIANT: obj.variant ?? String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n },\n },\n }),\n\n fromAbapGit: ({ SCVI }) => ({\n name: (SCVI?.SHDSVCI?.VARIANT ?? '').toUpperCase(),\n tcode: SCVI?.SHDSVCI?.TCODE,\n screen: SCVI?.SHDSVCI?.SCREEN,\n variant: SCVI?.SHDSVCI?.VARIANT,\n text: SCVI?.SHDSVCI?.TEXT,\n }),\n});\n","/**\n * ACID (Acid Object) handler for abapGit format\n */\n\nimport { acid } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype AcidObjectLike = {\n name: string;\n description?: string;\n};\n\nexport const acidHandler = createHandler<AcidObjectLike, typeof acid>('ACID', {\n schema: acid,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ACID',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<AcidObjectLike>(raw);\n return {\n DESCRIPTION: obj.description,\n };\n },\n\n fromAbapGit: ({ DESCRIPTION }) => ({\n name: '',\n description: DESCRIPTION,\n }),\n});\n","/**\n * AVAS (Variant Assignment) handler for abapGit format\n */\n\nimport { avas } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype VariantAssignmentLike = {\n name: string;\n guid?: string;\n attribute?: string;\n object?: string;\n};\n\nexport const variantAssignmentHandler = createHandler<\n VariantAssignmentLike,\n typeof avas\n>('AVAS', {\n schema: avas,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_AVAS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n AVAS: {\n HEADER: {\n GUID: obj.guid,\n ATTRIBUTE: obj.attribute,\n OBJECT: obj.object,\n },\n },\n }),\n\n fromAbapGit: ({ AVAS }) => ({\n name: '',\n guid: AVAS?.HEADER?.GUID,\n attribute: AVAS?.HEADER?.ATTRIBUTE,\n object: AVAS?.HEADER?.OBJECT,\n }),\n});\n","/**\n * CMOD (Customer Enhancement Project) handler for abapGit format\n */\n\nimport { cmod } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype EnhancementProjectLike = {\n name: string;\n members?: Array<{ name?: string; member?: string }>;\n texts?: Array<{ name?: string; language?: string; text?: string }>;\n attributes?: Array<{ name?: string; status?: string }>;\n};\n\nexport const enhancementProjectHandler = createHandler<\n EnhancementProjectLike,\n typeof cmod\n>('CMOD', {\n schema: cmod,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CMOD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n MODACT: obj.members?.length\n ? { item: obj.members.map((m) => ({ NAME: m.name, MEMBER: m.member })) }\n : undefined,\n MODTEXT: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n NAME: t.name,\n SPRAS: isoToSapLang(t.language),\n MODTEXT: t.text,\n })),\n }\n : undefined,\n MODATTR: obj.attributes?.length\n ? {\n item: obj.attributes.map((a) => ({ NAME: a.name, STATUS: a.status })),\n }\n : undefined,\n }),\n\n fromAbapGit: ({ MODACT, MODTEXT, MODATTR }) => {\n const members = normalizeItems(MODACT?.item);\n const texts = normalizeItems(MODTEXT?.item);\n const attrs = normalizeItems(MODATTR?.item);\n return {\n name: (members[0]?.NAME ?? '').toUpperCase(),\n members: mapItems(members, (m) => ({ name: m.NAME, member: m.MEMBER })),\n texts: mapItems(texts, (t) => ({\n name: t.NAME,\n language: sapLangToIso(t.SPRAS),\n text: t.MODTEXT,\n })),\n attributes: mapItems(attrs, (a) => ({ name: a.NAME, status: a.STATUS })),\n };\n },\n});\n","/**\n * DIAL (Dialog Module) handler for abapGit format\n */\n\nimport { dial } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype DialogModuleLike = {\n name: string;\n language?: string;\n description?: string;\n dynr?: string;\n program?: string;\n parameters?: Array<{\n dnam?: string;\n dynr?: string;\n param?: string;\n dpnam?: string;\n dtype?: string;\n dplen?: string;\n text?: string;\n }>;\n};\n\nexport const dialogModuleHandler = createHandler<DialogModuleLike, typeof dial>(\n 'DIAL',\n {\n schema: dial,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DIAL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<DialogModuleLike>(raw);\n return {\n DIAL: {\n TDCT: {\n DIALOGNAME: String(obj.name ?? '').toUpperCase(),\n DYNR: obj.dynr,\n PROG: obj.program,\n SPRAS: isoToSapLang(obj.language),\n DDTEXT: obj.description,\n },\n DIA_PARS: obj.parameters?.length\n ? {\n item: obj.parameters.map((p) => ({\n DNAM: p.dnam,\n DYNR: p.dynr,\n PARAM: p.param,\n DPNAM: p.dpnam,\n DTYPE: p.dtype,\n DPLEN: p.dplen,\n P_TEXT: p.text,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ DIAL }) => {\n const parameters = normalizeItems(DIAL?.DIA_PARS?.item);\n return {\n name: (DIAL?.TDCT?.DIALOGNAME ?? '').toUpperCase(),\n language: sapLangToIso(DIAL?.TDCT?.SPRAS),\n description: DIAL?.TDCT?.DDTEXT,\n dynr: DIAL?.TDCT?.DYNR,\n program: DIAL?.TDCT?.PROG,\n parameters: mapItems(parameters, (p) => ({\n dnam: p.DNAM,\n dynr: p.DYNR,\n param: p.PARAM,\n dpnam: p.DPNAM,\n dtype: p.DTYPE,\n dplen: p.DPLEN,\n text: p.P_TEXT,\n })),\n };\n },\n },\n);\n","/**\n * ENHC (Enhancement Composite) handler for abapGit format\n */\n\nimport { enhc } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype EnhancementCompositeLike = {\n name: string;\n shortText?: string;\n compositeChilds?: string[];\n enhChilds?: string[];\n longtextId?: string;\n};\n\nexport const enhancementCompositeHandler = createHandler<\n EnhancementCompositeLike,\n typeof enhc\n>('ENHC', {\n schema: enhc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ENHC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<EnhancementCompositeLike>(raw);\n return {\n SHORTTEXT: obj.shortText,\n COMPOSITE_CHILDS: obj.compositeChilds?.length\n ? { item: obj.compositeChilds.map((c) => ({ ENHCOMPOSITENAME: c })) }\n : undefined,\n ENH_CHILDS: obj.enhChilds?.length\n ? { item: obj.enhChilds.map((c) => ({ ENHNAME: c })) }\n : undefined,\n LONGTEXT_ID: obj.longtextId,\n };\n },\n\n fromAbapGit: ({ SHORTTEXT, COMPOSITE_CHILDS, ENH_CHILDS, LONGTEXT_ID }) => {\n const compositeChilds = normalizeItems(COMPOSITE_CHILDS?.item);\n const enhChilds = normalizeItems(ENH_CHILDS?.item);\n return {\n name: '',\n shortText: SHORTTEXT,\n compositeChilds: mapItems(\n compositeChilds,\n (c) => c.ENHCOMPOSITENAME ?? '',\n ),\n enhChilds: mapItems(enhChilds, (c) => c.ENHNAME ?? ''),\n longtextId: LONGTEXT_ID,\n };\n },\n});\n","/**\n * ENSC (Enhancement Spot Composite) handler for abapGit format\n */\n\nimport { ensc } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype EnhancementSpotCompositeLike = {\n name: string;\n shortText?: string;\n enhSpots?: string[];\n compEnhSpots?: string[];\n};\n\nexport const enhancementSpotCompositeHandler = createHandler<\n EnhancementSpotCompositeLike,\n typeof ensc\n>('ENSC', {\n schema: ensc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_ENSC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SHORTTEXT: obj.shortText,\n ENH_SPOTS: obj.enhSpots?.length\n ? { item: obj.enhSpots.map((s) => ({ ENHSPOTNAME: s })) }\n : undefined,\n COMP_ENH_SPOTS: obj.compEnhSpots?.length\n ? { item: obj.compEnhSpots.map((s) => ({ ENHSPOTNAME: s })) }\n : undefined,\n }),\n\n fromAbapGit: ({ SHORTTEXT, ENH_SPOTS, COMP_ENH_SPOTS }) => {\n const enhSpots = normalizeItems(ENH_SPOTS?.item);\n const compEnhSpots = normalizeItems(COMP_ENH_SPOTS?.item);\n return {\n name: '',\n shortText: SHORTTEXT,\n enhSpots: mapItems(enhSpots, (s) => s.ENHSPOTNAME ?? ''),\n compEnhSpots: mapItems(compEnhSpots, (s) => s.ENHSPOTNAME ?? ''),\n };\n },\n});\n","/**\n * OTGR (Object Type Group) handler for abapGit format\n */\n\nimport { otgr } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype ObjectTypeGroupLike = {\n name: string;\n type?: string;\n texts?: Array<{ language?: string; text?: string }>;\n elements?: Array<{ objType?: string }>;\n};\n\nexport const objectTypeGroupHandler = createHandler<\n ObjectTypeGroupLike,\n typeof otgr\n>('OTGR', {\n schema: otgr,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_OTGR',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n OTGR: {\n CLS_TYPE_GROUP: {\n NAME: String(obj.name ?? '').toUpperCase(),\n TYPE: obj.type,\n },\n TEXTS: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n SPRAS: isoToSapLang(t.language),\n NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: t.text,\n })),\n }\n : undefined,\n ELEMENTS: obj.elements?.length\n ? {\n item: obj.elements.map((e) => ({\n OBJ_TYPE_GROUP: String(obj.name ?? '').toUpperCase(),\n OBJ_TYPE: e.objType,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ OTGR }) => {\n const texts = normalizeItems(OTGR?.TEXTS?.item);\n const elements = normalizeItems(OTGR?.ELEMENTS?.item);\n return {\n name: (OTGR?.CLS_TYPE_GROUP?.NAME ?? '').toUpperCase(),\n type: OTGR?.CLS_TYPE_GROUP?.TYPE,\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.TEXT,\n })),\n elements: mapItems(elements, (e) => ({ objType: e.OBJ_TYPE })),\n };\n },\n});\n","/**\n * SFSW (Switch Framework Switch) handler for abapGit format\n */\n\nimport { sfsw } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype SwitchLike = {\n name: string;\n name32?: string;\n name80?: string;\n parentBfs?: string[];\n conflicts?: string[];\n packages?: string[];\n};\n\nexport const switchHandler = createHandler<SwitchLike, typeof sfsw>('SFSW', {\n schema: sfsw,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SFSW',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SwitchLike>(raw);\n return {\n HEADER: {\n SWITCH_ID: String(obj.name ?? '').toUpperCase(),\n },\n NAME32: obj.name32,\n NAME80: obj.name80,\n PARENT_BF: obj.parentBfs?.length\n ? { item: obj.parentBfs.map((b) => ({ BF: b })) }\n : undefined,\n CONFLICTS: obj.conflicts?.length\n ? { item: obj.conflicts.map((c) => ({ CONFLICT: c })) }\n : undefined,\n PACKAGES: obj.packages?.length\n ? { item: obj.packages.map((p) => ({ PACKAGE: p })) }\n : undefined,\n };\n },\n\n fromAbapGit: ({ HEADER, NAME32, NAME80, PARENT_BF, CONFLICTS, PACKAGES }) => {\n const parentBfs = normalizeItems(PARENT_BF?.item);\n const conflicts = normalizeItems(CONFLICTS?.item);\n const packages = normalizeItems(PACKAGES?.item);\n return {\n name: (HEADER?.SWITCH_ID ?? '').toUpperCase(),\n name32: NAME32,\n name80: NAME80,\n parentBfs: mapItems(parentBfs, (p) => p.BF ?? ''),\n conflicts: mapItems(conflicts, (c) => c.CONFLICT ?? ''),\n packages: mapItems(packages, (p) => p.PACKAGE ?? ''),\n };\n },\n});\n","/**\n * SSST (SAP Smart Form Style) handler for abapGit format\n */\n\nimport { ssst } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype SmartFormStyleLike = {\n name: string;\n masterLanguage?: string;\n fontFamily?: string;\n ssfparas?: unknown;\n ssfstrings?: unknown;\n stxstab?: unknown;\n};\n\nexport const smartFormStyleHandler = createHandler<\n SmartFormStyleLike,\n typeof ssst\n>('SSST', {\n schema: ssst,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SSST',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<SmartFormStyleLike>(raw);\n return {\n HEADER: {\n SSFNAME: String(obj.name ?? '').toUpperCase(),\n MASTERLANG: isoToSapLang(obj.masterLanguage),\n TDFAMILY: obj.fontFamily,\n },\n SSFPARAS: obj.ssfparas,\n SSFSTRINGS: obj.ssfstrings,\n STXSTAB: obj.stxstab,\n };\n },\n\n fromAbapGit: ({ HEADER, SSFPARAS, SSFSTRINGS, STXSTAB }) => ({\n name: (HEADER?.SSFNAME ?? '').toUpperCase(),\n masterLanguage: sapLangToIso(HEADER?.MASTERLANG),\n fontFamily: HEADER?.TDFAMILY,\n ssfparas: SSFPARAS,\n ssfstrings: SSFSTRINGS,\n stxstab: STXSTAB,\n }),\n});\n","/**\n * SFBF (Business Function) handler for abapGit format\n */\n\nimport { sfbf } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype BusinessFunctionLike = {\n name: string;\n name32?: string;\n name80?: string;\n assignedSwitches?: string[];\n parentBfs?: string[];\n};\n\nexport const businessFunctionHandler = createHandler<\n BusinessFunctionLike,\n typeof sfbf\n>('SFBF', {\n schema: sfbf,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SFBF',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n HEADER: {\n BF_NAME: String(obj.name ?? '').toUpperCase(),\n },\n NAME32: obj.name32,\n NAME80: obj.name80,\n ASSIGNED_SWITCHES: obj.assignedSwitches?.length\n ? { item: obj.assignedSwitches.map((s) => ({ SWITCH: s })) }\n : undefined,\n PARENT_BFS: obj.parentBfs?.length\n ? { item: obj.parentBfs.map((b) => ({ BF: b })) }\n : undefined,\n }),\n\n fromAbapGit: ({ HEADER, NAME32, NAME80, ASSIGNED_SWITCHES, PARENT_BFS }) => {\n const switches = normalizeItems(ASSIGNED_SWITCHES?.item);\n const parentBfs = normalizeItems(PARENT_BFS?.item);\n return {\n name: (HEADER?.BF_NAME ?? '').toUpperCase(),\n name32: NAME32,\n name80: NAME80,\n assignedSwitches: mapItems(switches, (s) => s.SWITCH ?? ''),\n parentBfs: mapItems(parentBfs, (b) => b.BF ?? ''),\n };\n },\n});\n","/**\n * SFBS (Business Function Set) handler for abapGit format\n */\n\nimport { sfbs } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype BusinessFunctionSetLike = {\n name: string;\n name32?: string;\n name80?: string;\n assignedBfs?: string[];\n nestedBfs?: string[];\n parentBfs?: string[];\n};\n\nexport const businessFunctionSetHandler = createHandler<\n BusinessFunctionSetLike,\n typeof sfbs\n>('SFBS', {\n schema: sfbs,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SFBS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n HEADER: {\n BS_NAME: String(obj.name ?? '').toUpperCase(),\n },\n NAME32: obj.name32,\n NAME80: obj.name80,\n ASSIGNED_BF: obj.assignedBfs?.length\n ? { item: obj.assignedBfs.map((b) => ({ BF: b })) }\n : undefined,\n NESTED_BFS: obj.nestedBfs?.length\n ? { item: obj.nestedBfs.map((b) => ({ BFS: b })) }\n : undefined,\n PARENT_BFS: obj.parentBfs?.length\n ? { item: obj.parentBfs.map((b) => ({ BFS: b })) }\n : undefined,\n }),\n\n fromAbapGit: ({\n HEADER,\n NAME32,\n NAME80,\n ASSIGNED_BF,\n NESTED_BFS,\n PARENT_BFS,\n }) => {\n const assignedBfs = normalizeItems(ASSIGNED_BF?.item);\n const nestedBfs = normalizeItems(NESTED_BFS?.item);\n const parentBfs = normalizeItems(PARENT_BFS?.item);\n return {\n name: (HEADER?.BS_NAME ?? '').toUpperCase(),\n name32: NAME32,\n name80: NAME80,\n assignedBfs: mapItems(assignedBfs, (b) => b.BF ?? ''),\n nestedBfs: mapItems(nestedBfs, (b) => b.BFS ?? ''),\n parentBfs: mapItems(parentBfs, (b) => b.BFS ?? ''),\n };\n },\n});\n","/**\n * SXSD (BAdI Definition) handler for abapGit format\n */\n\nimport { sxsd } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype BadiDefinitionLike = {\n name: string;\n text?: string;\n interface?: string;\n masterLanguage?: string;\n extClassName?: string;\n};\n\nexport const badiDefinitionHandler = createHandler<\n BadiDefinitionLike,\n typeof sxsd\n>('SXSD', {\n schema: sxsd,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SXSD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SXSD: {\n BADI: {\n BADI_NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n INTERFACE: obj.interface,\n },\n MAST_LANGU: isoToSapLang(obj.masterLanguage),\n EXT_CLNAME: obj.extClassName,\n },\n }),\n\n fromAbapGit: ({ SXSD }) => ({\n name: (SXSD?.BADI?.BADI_NAME ?? '').toUpperCase(),\n text: SXSD?.BADI?.TEXT,\n interface: SXSD?.BADI?.INTERFACE,\n masterLanguage: sapLangToIso(SXSD?.MAST_LANGU),\n extClassName: SXSD?.EXT_CLNAME,\n }),\n});\n","/**\n * UCSA (Unit Case / Communication Assembly) handler for abapGit format\n */\n\nimport { ucsa } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype UnitCaseLike = {\n name: string;\n id?: string;\n description?: string;\n};\n\nexport const unitCaseHandler = createHandler<UnitCaseLike, typeof ucsa>(\n 'UCSA',\n {\n schema: ucsa,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_UCSA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<UnitCaseLike>(raw);\n return {\n UCSA: {\n HEADER: {\n ID: obj.id ?? String(obj.name ?? '').toUpperCase(),\n DESCRIPTION: obj.description,\n },\n },\n };\n },\n\n fromAbapGit: ({ UCSA }) => ({\n name: (UCSA?.HEADER?.ID ?? '').toUpperCase(),\n id: UCSA?.HEADER?.ID,\n description: UCSA?.HEADER?.DESCRIPTION,\n }),\n },\n);\n","/**\n * UDMO (Data Model) handler for abapGit format\n */\n\nimport { udmo } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype DataModelLike = {\n name: string;\n as4local?: string;\n dmoType?: string;\n entities?: Array<{ entId?: string; as4local?: string }>;\n texts?: Array<{ language?: string; longText?: string; as4local?: string }>;\n};\n\nexport const dataModelHandler = createHandler<DataModelLike, typeof udmo>(\n 'UDMO',\n {\n schema: udmo,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_UDMO',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<DataModelLike>(raw);\n return {\n DM40L: {\n DMOID: String(obj.name ?? '').toUpperCase(),\n AS4LOCAL: obj.as4local,\n DMOTYPE: obj.dmoType,\n },\n UDMO_ENTITIES: obj.entities?.length\n ? {\n item: obj.entities.map((e) => ({\n DMOID: String(obj.name ?? '').toUpperCase(),\n ENTID: e.entId,\n AS4LOCAL: e.as4local,\n })),\n }\n : undefined,\n UDMO_TEXTS: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n SPRACHE: isoToSapLang(t.language),\n DMOID: String(obj.name ?? '').toUpperCase(),\n LANGBEZ: t.longText,\n AS4LOCAL: t.as4local,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ DM40L, UDMO_ENTITIES, UDMO_TEXTS }) => {\n const entities = normalizeItems(UDMO_ENTITIES?.item);\n const texts = normalizeItems(UDMO_TEXTS?.item);\n return {\n name: (DM40L?.DMOID ?? '').toUpperCase(),\n as4local: DM40L?.AS4LOCAL,\n dmoType: DM40L?.DMOTYPE,\n entities: mapItems(entities, (e) => ({\n entId: e.ENTID,\n as4local: e.AS4LOCAL,\n })),\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRACHE),\n longText: t.LANGBEZ,\n as4local: t.AS4LOCAL,\n })),\n };\n },\n },\n);\n","/**\n * IAXU (Internet Application XML Template) handler for abapGit format\n */\n\nimport { iaxu } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype IaxuLike = {\n name: string;\n text?: string;\n mimeType?: string;\n packageName?: string;\n};\n\nexport const iaxuHandler = createHandler<IaxuLike, typeof iaxu>('IAXU', {\n schema: iaxu,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_IAXU',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<IaxuLike>(raw);\n return {\n ATTR: {\n NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n MIMETYPE: obj.mimeType,\n DEVCLASS: obj.packageName,\n },\n };\n },\n\n fromAbapGit: ({ ATTR }) => ({\n name: (ATTR?.NAME ?? '').toUpperCase(),\n text: ATTR?.TEXT,\n mimeType: ATTR?.MIMETYPE,\n packageName: ATTR?.DEVCLASS,\n }),\n});\n","/**\n * IEXT (IDoc Extension) handler for abapGit format\n */\n\nimport { iext } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\n\ntype IdocExtensionLike = {\n name: string;\n idocType?: string;\n cimType?: string;\n description?: string;\n syntax?: Array<{ segment?: string }>;\n};\n\nexport const idocExtensionHandler = createHandler<\n IdocExtensionLike,\n typeof iext\n>('IEXT', {\n schema: iext,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_IEXT',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n IEXT: {\n ATTRIBUTES: {\n EXTTYPE: String(obj.name ?? '').toUpperCase(),\n IDOCTYP: obj.idocType,\n CIMTYP: obj.cimType,\n DESCRP: obj.description,\n },\n T_SYNTAX: obj.syntax?.length\n ? {\n item: obj.syntax.map((s) => ({\n EXTTYPE: String(obj.name ?? '').toUpperCase(),\n SEGMENT: s.segment,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ IEXT }) => {\n const syntax = normalizeItems(IEXT?.T_SYNTAX?.item);\n return {\n name: (IEXT?.ATTRIBUTES?.EXTTYPE ?? '').toUpperCase(),\n idocType: IEXT?.ATTRIBUTES?.IDOCTYP,\n cimType: IEXT?.ATTRIBUTES?.CIMTYP,\n description: IEXT?.ATTRIBUTES?.DESCRP,\n syntax: mapItems(syntax, (s) => ({ segment: s.SEGMENT })),\n };\n },\n});\n","/**\n * SAMC (AMC Application) handler for abapGit format\n */\n\nimport { samc } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype AmcApplicationLike = {\n name: string;\n description?: string;\n};\n\nexport const amcApplicationHandler = createHandler<\n AmcApplicationLike,\n typeof samc\n>('SAMC', {\n schema: samc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SAMC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SAMC: {\n HEADER: {\n AMC_NAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPT: obj.description,\n },\n },\n }),\n\n fromAbapGit: ({ SAMC }) => ({\n name: (SAMC?.HEADER?.AMC_NAME ?? '').toUpperCase(),\n description: SAMC?.HEADER?.DESCRIPT,\n }),\n});\n","/**\n * SAPC (APC Application) handler for abapGit format\n */\n\nimport { sapc } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype ApcApplicationLike = {\n name: string;\n description?: string;\n};\n\nexport const apcApplicationHandler = createHandler<\n ApcApplicationLike,\n typeof sapc\n>('SAPC', {\n schema: sapc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_SAPC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n SAPC: {\n HEADER: {\n APC_NAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPT: obj.description,\n },\n },\n }),\n\n fromAbapGit: ({ SAPC }) => ({\n name: (SAPC?.HEADER?.APC_NAME ?? '').toUpperCase(),\n description: SAPC?.HEADER?.DESCRIPT,\n }),\n});\n","/**\n * DSYS (Documentation Object) handler for abapGit format\n *\n * Serializer version v2.0.0 uses LONGTEXTS structure.\n */\n\nimport { dsys } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype DocumentationObjectLike = {\n name: string;\n language?: string;\n lines?: Array<{ format?: string; line?: string }>;\n};\n\nexport const documentationObjectHandler = createHandler<\n DocumentationObjectLike,\n typeof dsys\n>('DSYS', {\n schema: dsys,\n version: 'v2.0.0',\n serializer: 'LCL_OBJECT_DSYS',\n serializer_version: 'v2.0.0',\n\n toAbapGit: (obj) => ({\n LONGTEXTS: {\n item: [\n {\n DOKIL: {\n ID: 'HY',\n OBJECT: String(obj.name ?? '').toUpperCase(),\n LANGU: isoToSapLang(obj.language),\n TYP: 'E',\n },\n HEAD: {\n TDOBJECT: 'DSYS',\n TDNAME: String(obj.name ?? '').toUpperCase(),\n TDID: 'HY',\n TDSPRAS: isoToSapLang(obj.language),\n },\n LINES: obj.lines?.length\n ? {\n item: obj.lines.map((l) => ({\n TDFORMAT: l.format,\n TDLINE: l.line,\n })),\n }\n : undefined,\n },\n ],\n },\n }),\n\n fromAbapGit: ({ LONGTEXTS }) => {\n const items = normalizeItems(LONGTEXTS?.item);\n const first = items[0];\n const lines = normalizeItems(first?.LINES?.item);\n return {\n name: (first?.DOKIL?.OBJECT ?? '').toUpperCase(),\n language: sapLangToIso(first?.DOKIL?.LANGU),\n lines: mapItems(lines, (l) => ({ format: l.TDFORMAT, line: l.TDLINE })),\n };\n },\n});\n","/**\n * FTGL (Feature Toggle) handler for abapGit format\n */\n\nimport { ftgl } from '../../../schemas/generated';\nimport { createHandler } from '../base';\n\ntype FeatureToggleLike = {\n name: string;\n description?: string;\n status?: string;\n};\n\nexport const featureToggleHandler = createHandler<\n FeatureToggleLike,\n typeof ftgl\n>('FTGL', {\n schema: ftgl,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_FTGL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n FTGL: {\n HEADER: {\n FEATURE_ID: String(obj.name ?? '').toUpperCase(),\n DESCRIPTION: obj.description,\n STATUS: obj.status,\n },\n },\n }),\n\n fromAbapGit: ({ FTGL }) => ({\n name: (FTGL?.HEADER?.FEATURE_ID ?? '').toUpperCase(),\n description: FTGL?.HEADER?.DESCRIPTION,\n status: FTGL?.HEADER?.STATUS,\n }),\n});\n","/**\n * PRAG (Pragma) handler for abapGit format\n */\n\nimport { prag } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype PragmaLike = {\n name: string;\n extension?: string;\n signature?: string;\n description?: string;\n};\n\nexport const pragmaHandler = createHandler<PragmaLike, typeof prag>('PRAG', {\n schema: prag,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PRAG',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<PragmaLike>(raw);\n return {\n PRAG: {\n PRAGMA: String(obj.name ?? '').toUpperCase(),\n EXTENSION: obj.extension,\n SIGNATURE: obj.signature,\n DESCRIPTION: obj.description,\n },\n };\n },\n\n fromAbapGit: ({ PRAG }) => ({\n name: (PRAG?.PRAGMA ?? '').toUpperCase(),\n extension: PRAG?.EXTENSION,\n signature: PRAG?.SIGNATURE,\n description: PRAG?.DESCRIPTION,\n }),\n});\n","/**\n * CUS0 (IMG Activity) handler for abapGit format\n */\n\nimport { cus0 } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype ImgActivityLike = {\n name: string;\n docuId?: string;\n attributes?: string;\n cActivity?: string;\n tcode?: string;\n texts?: Array<{ language?: string; text?: string }>;\n};\n\nexport const imgActivityHandler = createHandler<ImgActivityLike, typeof cus0>(\n 'CUS0',\n {\n schema: cus0,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CUS0',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<ImgActivityLike>(raw);\n return {\n CUS0: {\n HEADER: {\n ACTIVITY: String(obj.name ?? '').toUpperCase(),\n DOCU_ID: obj.docuId,\n ATTRIBUTES: obj.attributes,\n C_ACTIVITY: obj.cActivity,\n TCODE: obj.tcode,\n },\n TEXTS: obj.texts?.length\n ? {\n item: obj.texts.map((t) => ({\n SPRAS: isoToSapLang(t.language),\n TEXT: t.text,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ CUS0 }) => {\n const texts = normalizeItems(CUS0?.TEXTS?.item);\n return {\n name: (CUS0?.HEADER?.ACTIVITY ?? '').toUpperCase(),\n docuId: CUS0?.HEADER?.DOCU_ID,\n attributes: CUS0?.HEADER?.ATTRIBUTES,\n cActivity: CUS0?.HEADER?.C_ACTIVITY,\n tcode: CUS0?.HEADER?.TCODE,\n texts: mapItems(texts, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.TEXT,\n })),\n };\n },\n },\n);\n","/**\n * CUS1 (Customizing Activity) handler for abapGit format\n */\n\nimport { cus1 } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype CustomizingActivityLike = {\n name: string;\n actType?: string;\n titles?: Array<{ language?: string; text?: string }>;\n};\n\nexport const customizingActivityHandler = createHandler<\n CustomizingActivityLike,\n typeof cus1\n>('CUS1', {\n schema: cus1,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CUS1',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n CUS1: {\n ACTIVITY_HEADER: {\n ACT_ID: String(obj.name ?? '').toUpperCase(),\n ACT_TYPE: obj.actType,\n },\n ACTIVITY_TITLE: obj.titles?.length\n ? {\n item: obj.titles.map((t) => ({\n ACT_ID: String(obj.name ?? '').toUpperCase(),\n SPRAS: isoToSapLang(t.language),\n TEXT: t.text,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ CUS1 }) => {\n const titles = normalizeItems(CUS1?.ACTIVITY_TITLE?.item);\n return {\n name: (CUS1?.ACTIVITY_HEADER?.ACT_ID ?? '').toUpperCase(),\n actType: CUS1?.ACTIVITY_HEADER?.ACT_TYPE,\n titles: mapItems(titles, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.TEXT,\n })),\n };\n },\n});\n","/**\n * CUS2 (Customizing Attribute) handler for abapGit format\n */\n\nimport { cus2 } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype CustomizingAttributeLike = {\n name: string;\n attrType?: string;\n titles?: Array<{ language?: string; text?: string }>;\n};\n\nexport const customizingAttributeHandler = createHandler<\n CustomizingAttributeLike,\n typeof cus2\n>('CUS2', {\n schema: cus2,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CUS2',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n CUS2: {\n HEADER: {\n ATTR_ID: String(obj.name ?? '').toUpperCase(),\n ATTR_TYPE: obj.attrType,\n },\n TITLES: obj.titles?.length\n ? {\n item: obj.titles.map((t) => ({\n ATTR_ID: String(obj.name ?? '').toUpperCase(),\n SPRAS: isoToSapLang(t.language),\n TEXT: t.text,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ CUS2 }) => {\n const titles = normalizeItems(CUS2?.TITLES?.item);\n return {\n name: (CUS2?.HEADER?.ATTR_ID ?? '').toUpperCase(),\n attrType: CUS2?.HEADER?.ATTR_TYPE,\n titles: mapItems(titles, (t) => ({\n language: sapLangToIso(t.SPRAS),\n text: t.TEXT,\n })),\n };\n },\n});\n","/**\n * DOCV (Documentation) handler for abapGit format\n */\n\nimport { docv } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype DocumentationLike = {\n name: string;\n docTitle?: string;\n language?: string;\n lines?: Array<{ format?: string; line?: string }>;\n};\n\nexport const documentationHandler = createHandler<\n DocumentationLike,\n typeof docv\n>('DOCV', {\n schema: docv,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DOCV',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DOC: {\n DOCTITLE: obj.docTitle,\n HEAD: {\n TDNAME: String(obj.name ?? '').toUpperCase(),\n TDSPRAS: isoToSapLang(obj.language),\n TDTITLE: obj.docTitle,\n },\n LINES: obj.lines?.length\n ? {\n item: obj.lines.map((l) => ({\n TDFORMAT: l.format,\n TDLINE: l.line,\n })),\n }\n : undefined,\n },\n }),\n\n fromAbapGit: ({ DOC }) => {\n const lines = normalizeItems(DOC?.LINES?.item);\n return {\n name: (DOC?.HEAD?.TDNAME ?? '').toUpperCase(),\n docTitle: DOC?.DOCTITLE,\n language: sapLangToIso(DOC?.HEAD?.TDSPRAS),\n lines: mapItems(lines, (l) => ({ format: l.TDFORMAT, line: l.TDLINE })),\n };\n },\n});\n","/**\n * DOCT (General Text / Longtext) handler for abapGit format\n *\n * Uses the abapGit longtexts helper which serializes a LONGTEXTS structure.\n */\n\nimport { doct } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype GeneralTextLike = {\n name: string;\n language?: string;\n lines?: Array<{ format?: string; line?: string }>;\n};\n\nexport const generalTextHandler = createHandler<GeneralTextLike, typeof doct>(\n 'DOCT',\n {\n schema: doct,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DOCT',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<GeneralTextLike>(raw);\n return {\n LONGTEXTS: {\n item: [\n {\n DOKIL: {\n ID: 'TX',\n OBJECT: String(obj.name ?? '').toUpperCase(),\n LANGU: isoToSapLang(obj.language),\n },\n HEAD: {\n TDNAME: String(obj.name ?? '').toUpperCase(),\n TDID: 'TX',\n TDSPRAS: isoToSapLang(obj.language),\n },\n LINES: obj.lines?.length\n ? {\n item: obj.lines.map((l) => ({\n TDFORMAT: l.format,\n TDLINE: l.line,\n })),\n }\n : undefined,\n },\n ],\n },\n };\n },\n\n fromAbapGit: ({ LONGTEXTS }) => {\n const items = normalizeItems(LONGTEXTS?.item);\n const first = items[0];\n const lines = normalizeItems(first?.LINES?.item);\n return {\n name: (first?.DOKIL?.OBJECT ?? '').toUpperCase(),\n language: sapLangToIso(first?.DOKIL?.LANGU),\n lines: mapItems(lines, (l) => ({ format: l.TDFORMAT, line: l.TDLINE })),\n };\n },\n },\n);\n","/**\n * CMPT (Composite Template) handler for abapGit format\n *\n * Upstream serializes the full IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE\n * structure under CMPT — HEADER plus body fields (STR_BODY etc.)\n * that pass through lax.\n */\n\nimport { cmpt } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype CompositeTemplateLike = {\n name: string;\n description?: string;\n /** Additional CMPT children (STR_BODY etc.) preserved verbatim */\n extra?: Record<string, unknown>;\n};\n\nexport const compositeTemplateHandler = createHandler<\n CompositeTemplateLike,\n typeof cmpt\n>('CMPT', {\n schema: cmpt,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_CMPT',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<CompositeTemplateLike>(raw);\n return {\n CMPT: {\n HEADER: {\n NAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPTION: obj.description,\n },\n ...(obj.extra ?? {}),\n },\n };\n },\n\n fromAbapGit: ({ CMPT }) => {\n const { HEADER, ...rest } = CMPT ?? {};\n return {\n name: (HEADER?.NAME ?? '').toUpperCase(),\n description: HEADER?.DESCRIPTION,\n extra: rest,\n };\n },\n});\n","/**\n * AMSD (AMDP Logical DB Schema) handler for abapGit format\n */\n\nimport { amsd } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype AmdpSchemaLike = {\n name: string;\n masterLanguage?: string;\n packageName?: string;\n};\n\nexport const amdpSchemaHandler = createHandler<AmdpSchemaLike, typeof amsd>(\n 'AMSD',\n {\n schema: amsd,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_AMSD',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<AmdpSchemaLike>(raw);\n return {\n AMSD: {\n METADATA: {\n NAME: String(obj.name ?? '').toUpperCase(),\n MASTER_LANGUAGE: isoToSapLang(obj.masterLanguage),\n PACKAGE_REF: obj.packageName,\n },\n },\n };\n },\n\n fromAbapGit: ({ AMSD }) => ({\n name: (AMSD?.METADATA?.NAME ?? '').toUpperCase(),\n masterLanguage: sapLangToIso(AMSD?.METADATA?.MASTER_LANGUAGE),\n packageName: AMSD?.METADATA?.PACKAGE_REF,\n }),\n },\n);\n","/**\n * APIS (API Release State) handler for abapGit format\n */\n\nimport { apis } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype ApiStateLike = {\n name: string;\n description?: string;\n};\n\nexport const apiStateHandler = createHandler<ApiStateLike, typeof apis>(\n 'APIS',\n {\n schema: apis,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_APIS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<ApiStateLike>(raw);\n return {\n APIS: {\n HEADER: {\n API_NAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPTION: obj.description,\n },\n },\n };\n },\n\n fromAbapGit: ({ APIS }) => ({\n name: (APIS?.HEADER?.API_NAME ?? '').toUpperCase(),\n description: APIS?.HEADER?.DESCRIPTION,\n }),\n },\n);\n","/**\n * WDYA (Web Dynpro Application) handler for abapGit format\n */\n\nimport { wdya } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype WdyaLike = {\n name: string;\n component?: string;\n interface?: string;\n description?: string;\n properties?: Array<{ name?: string; value?: string }>;\n};\n\nexport const webDynproAppHandler = createHandler<WdyaLike, typeof wdya>(\n 'WDYA',\n {\n schema: wdya,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_WDYA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<WdyaLike>(raw);\n return {\n APP: {\n APPLICATION_NAME: String(obj.name ?? '').toUpperCase(),\n COMPONENT: obj.component,\n INTERFACE: obj.interface,\n DESCRIPTION: obj.description,\n },\n PROPERTIES: obj.properties?.length\n ? {\n item: obj.properties.map((p) => ({\n NAME: p.name,\n VALUE: p.value,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ APP, PROPERTIES }) => {\n const props = normalizeItems(PROPERTIES?.item);\n return {\n name: (APP?.APPLICATION_NAME ?? '').toUpperCase(),\n component: APP?.COMPONENT,\n interface: APP?.INTERFACE,\n description: APP?.DESCRIPTION,\n properties: mapItems(props, (p) => ({ name: p.NAME, value: p.VALUE })),\n };\n },\n },\n);\n","/**\n * WEBI (Web Service / Virtual Endpoint) handler for abapGit format\n */\n\nimport { webi } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype WebiLike = {\n name: string;\n description?: string;\n language?: string;\n headers?: Array<{ generator?: string; features?: string }>;\n};\n\nexport const webiHandler = createHandler<WebiLike, typeof webi>('WEBI', {\n schema: webi,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_WEBI',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<WebiLike>(raw);\n return {\n WEBI: {\n VEPTEXT: {\n VEPNAME: String(obj.name ?? '').toUpperCase(),\n DESCRIPT: obj.description,\n LANGU: isoToSapLang(obj.language),\n },\n PVEPHEADER: obj.headers?.length\n ? {\n item: obj.headers.map((h) => ({\n VEPNAME: String(obj.name ?? '').toUpperCase(),\n GENERATOR: h.generator,\n FEATURES: h.features,\n })),\n }\n : undefined,\n },\n };\n },\n\n fromAbapGit: ({ WEBI }) => {\n const headers = normalizeItems(WEBI?.PVEPHEADER?.item);\n return {\n name: (WEBI?.VEPTEXT?.VEPNAME ?? '').toUpperCase(),\n description: WEBI?.VEPTEXT?.DESCRIPT,\n language: sapLangToIso(WEBI?.VEPTEXT?.LANGU),\n headers: mapItems(headers, (h) => ({\n generator: h.GENERATOR,\n features: h.FEATURES,\n })),\n };\n },\n});\n","/**\n * WDCA (Web Dynpro Application Configuration) handler for abapGit format\n */\n\nimport { wdca } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype WdcaLike = {\n name: string;\n configType?: string;\n configVar?: string;\n data?: Array<{ compName?: string; content?: string }>;\n descrLang?: string;\n};\n\nexport const wdcaHandler = createHandler<WdcaLike, typeof wdca>('WDCA', {\n schema: wdca,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_WDCA',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<WdcaLike>(raw);\n return {\n OUTLINE: {\n CONFIG_ID: String(obj.name ?? '').toUpperCase(),\n CONFIG_TYPE: obj.configType,\n CONFIG_VAR: obj.configVar,\n },\n DATA: obj.data?.length\n ? {\n item: obj.data.map((d) => ({\n CONFIG_ID: String(obj.name ?? '').toUpperCase(),\n CONFIG_TYPE: obj.configType,\n CONFIG_VAR: obj.configVar,\n COMPNAME: d.compName,\n CONTENT: d.content,\n })),\n }\n : undefined,\n DESCR_LANG: isoToSapLang(obj.descrLang),\n };\n },\n\n fromAbapGit: ({ OUTLINE, DATA, DESCR_LANG }) => {\n const data = normalizeItems(DATA?.item);\n return {\n name: (OUTLINE?.CONFIG_ID ?? '').toUpperCase(),\n configType: OUTLINE?.CONFIG_TYPE,\n configVar: OUTLINE?.CONFIG_VAR,\n data: mapItems(data, (d) => ({\n compName: d.COMPNAME,\n content: d.CONTENT,\n })),\n descrLang: sapLangToIso(DESCR_LANG),\n };\n },\n});\n","/**\n * WDCC (Web Dynpro Component Configuration) handler for abapGit format\n */\n\nimport { wdcc } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype WdccLike = {\n name: string;\n configId?: string;\n configType?: string;\n configVar?: string;\n wdaComponent?: string;\n parent?: string;\n relId?: string;\n otrTexts?: Array<{ name?: string; text?: string }>;\n descrLang?: string;\n};\n\nexport const wdccHandler = createHandler<WdccLike, typeof wdcc>('WDCC', {\n schema: wdcc,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_WDCC',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<WdccLike>(raw);\n return {\n OBJECT_NAME: String(obj.name ?? '').toUpperCase(),\n CONFIG_ID: obj.configId,\n CONFIG_TYPE: obj.configType,\n CONFIG_VAR: obj.configVar,\n WDA_COMPONENT: obj.wdaComponent,\n PARENT: obj.parent,\n RELID: obj.relId,\n OTR_TEXT: obj.otrTexts?.length\n ? { item: obj.otrTexts.map((t) => ({ NAME: t.name, TEXT: t.text })) }\n : undefined,\n DESCR_LANG: isoToSapLang(obj.descrLang),\n };\n },\n\n fromAbapGit: (values) => {\n const otrTexts = normalizeItems(values.OTR_TEXT?.item);\n return {\n name: (values.OBJECT_NAME ?? '').toUpperCase(),\n configId: values.CONFIG_ID,\n configType: values.CONFIG_TYPE,\n configVar: values.CONFIG_VAR,\n wdaComponent: values.WDA_COMPONENT,\n parent: values.PARENT,\n relId: values.RELID,\n otrTexts: mapItems(otrTexts, (t) => ({ name: t.NAME, text: t.TEXT })),\n descrLang: sapLangToIso(values.DESCR_LANG),\n };\n },\n});\n","/**\n * PDTS (Process/Task Definition Standard) handler for abapGit format\n *\n * Note: upstream also embeds a raw CONTAINER XML element (workflow container).\n * The typed schema covers the PDTS header payload.\n */\n\nimport { pdts } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype PdtsLike = {\n name: string;\n otype?: string;\n short?: string;\n stext?: string;\n};\n\nexport const pdtsHandler = createHandler<PdtsLike, typeof pdts>('PDTS', {\n schema: pdts,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_PDTS',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<PdtsLike>(raw);\n return {\n PDTS: {\n HEADER: {\n OTYPE: obj.otype ?? 'TS',\n OBJID: String(obj.name ?? '').toUpperCase(),\n SHORT: obj.short,\n STEXT: obj.stext,\n },\n },\n };\n },\n\n fromAbapGit: ({ PDTS }) => ({\n name: (PDTS?.HEADER?.OBJID ?? '').toUpperCase(),\n otype: PDTS?.HEADER?.OTYPE,\n short: PDTS?.HEADER?.SHORT,\n stext: PDTS?.HEADER?.STEXT,\n }),\n});\n","/**\n * W3HT (W3 HTML Template) handler for abapGit format\n *\n * Upstream stores the HTML payload in a separate binary side file\n * ({name}.w3ht.data.{ext}); this handler covers the NAME/TEXT/PARAMS\n * metadata XML.\n */\n\nimport { w3ht } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype W3TemplateLike = {\n name: string;\n text?: string;\n params?: Array<{ name?: string; value?: string }>;\n};\n\nexport const w3htHandler = createHandler<W3TemplateLike, typeof w3ht>('W3HT', {\n schema: w3ht,\n version: 'v2.0.0',\n serializer: 'LCL_OBJECT_W3HT',\n serializer_version: 'v2.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<W3TemplateLike>(raw);\n return {\n NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n PARAMS: obj.params?.length\n ? {\n item: obj.params.map((p) => ({\n OBJID: String(obj.name ?? '').toUpperCase(),\n NAME: p.name,\n VALUE: p.value,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ NAME, TEXT, PARAMS }) => {\n const params = normalizeItems(PARAMS?.item);\n return {\n name: (NAME ?? '').toUpperCase(),\n text: TEXT,\n params: mapItems(params, (p) => ({ name: p.NAME, value: p.VALUE })),\n };\n },\n});\n","/**\n * W3MI (W3 MIME Object) handler for abapGit format\n *\n * Upstream stores the binary payload in a separate side file\n * ({name}.w3mi.data.{ext}); this handler covers the NAME/TEXT/PARAMS\n * metadata XML.\n */\n\nimport { w3mi } from '../../../schemas/generated';\nimport { createHandler, normalizeItems, mapItems, unwrapData } from '../base';\n\ntype W3MimeLike = {\n name: string;\n text?: string;\n params?: Array<{ name?: string; value?: string }>;\n};\n\nexport const w3miHandler = createHandler<W3MimeLike, typeof w3mi>('W3MI', {\n schema: w3mi,\n version: 'v2.0.0',\n serializer: 'LCL_OBJECT_W3MI',\n serializer_version: 'v2.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<W3MimeLike>(raw);\n return {\n NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n PARAMS: obj.params?.length\n ? {\n item: obj.params.map((p) => ({\n OBJID: String(obj.name ?? '').toUpperCase(),\n NAME: p.name,\n VALUE: p.value,\n })),\n }\n : undefined,\n };\n },\n\n fromAbapGit: ({ NAME, TEXT, PARAMS }) => {\n const params = normalizeItems(PARAMS?.item);\n return {\n name: (NAME ?? '').toUpperCase(),\n text: TEXT,\n params: mapItems(params, (p) => ({ name: p.NAME, value: p.VALUE })),\n };\n },\n});\n","/**\n * IATU (Internet Application HTML Template) handler for abapGit format\n *\n * Upstream stores the HTML source in a {name}.iatu.html side file\n * (mo_files->add_string iv_ext='html'); this handler covers the\n * ATTR metadata XML plus the HTML companion.\n */\n\nimport { iatu } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\nimport { formatAbapGitXml } from '../xml-format';\n\ntype IatuLike = {\n name: string;\n text?: string;\n mimeType?: string;\n packageName?: string;\n /** HTML template source stored in {name}.iatu.html */\n html?: string;\n};\n\nexport const iatuHandler = createHandler<IatuLike, typeof iatu>('IATU', {\n schema: iatu,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_IATU',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<IatuLike>(raw);\n return {\n ATTR: {\n NAME: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n MIMETYPE: obj.mimeType,\n DEVCLASS: obj.packageName,\n },\n };\n },\n\n serialize: async (raw, ctx) => {\n const obj = unwrapData<IatuLike>(raw);\n const objectName = ctx.getObjectName(obj);\n const files = [\n ctx.createFile(\n `${objectName}.iatu.xml`,\n formatAbapGitXml(ctx.toAbapGitXml(obj)),\n ),\n ];\n if (obj.html) {\n files.push(ctx.createFile(`${objectName}.iatu.html`, obj.html));\n }\n return files;\n },\n\n // {name}.iatu.html is collected as a binary source during\n // deserialization (base64-encoded by the deserializer).\n setSources: (obj, sources) => {\n const data = unwrapData<Record<string, unknown>>(obj);\n for (const [, content] of Object.entries(sources)) {\n data.html = Buffer.from(content, 'base64').toString('utf-8');\n }\n },\n\n fromAbapGit: ({ ATTR }) => ({\n name: (ATTR?.NAME ?? '').toUpperCase(),\n text: ATTR?.TEXT,\n mimeType: ATTR?.MIMETYPE,\n packageName: ATTR?.DEVCLASS,\n }),\n});\n","/**\n * IAMU (Internet Application MIME Object) handler for abapGit format\n *\n * Upstream v2.0.0 stores the binary payload in a separate side file;\n * this handler covers the IAMU metadata XML.\n */\n\nimport { iamu } from '../../../schemas/generated';\nimport { createHandler, unwrapData } from '../base';\n\ntype IamuLike = {\n name: string;\n text?: string;\n mimeType?: string;\n packageName?: string;\n extension?: string;\n};\n\nexport const iamuHandler = createHandler<IamuLike, typeof iamu>('IAMU', {\n schema: iamu,\n version: 'v2.0.0',\n serializer: 'LCL_OBJECT_IAMU',\n serializer_version: 'v2.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<IamuLike>(raw);\n return {\n IAMU: {\n ATTRIBUTES: {\n OBJID: String(obj.name ?? '').toUpperCase(),\n TEXT: obj.text,\n MIMETYPE: obj.mimeType,\n DEVCLASS: obj.packageName,\n },\n EXTENSION: obj.extension,\n },\n };\n },\n\n fromAbapGit: ({ IAMU }) => ({\n name: (IAMU?.ATTRIBUTES?.OBJID ?? '').toUpperCase(),\n text: IAMU?.ATTRIBUTES?.TEXT,\n mimeType: IAMU?.ATTRIBUTES?.MIMETYPE,\n packageName: IAMU?.ATTRIBUTES?.DEVCLASS,\n extension: IAMU?.EXTENSION,\n }),\n});\n","/**\n * DRUL (Derivation Rule) handler for abapGit format\n *\n * Upstream stores the rule source in a {name}.drul.asdrul side file;\n * this handler covers the DRUL metadata XML.\n */\n\nimport { drul } from '../../../schemas/generated';\nimport { createHandler } from '../base';\nimport { sapLangToIso, isoToSapLang } from '../lang';\n\ntype DerivationRuleLike = {\n name: string;\n masterLanguage?: string;\n responsible?: string;\n packageName?: string;\n};\n\nexport const derivationRuleHandler = createHandler<\n DerivationRuleLike,\n typeof drul\n>('DRUL', {\n schema: drul,\n version: 'v1.0.0',\n serializer: 'LCL_OBJECT_DRUL',\n serializer_version: 'v1.0.0',\n\n toAbapGit: (obj) => ({\n DRUL: {\n METADATA: {\n NAME: String(obj.name ?? '').toUpperCase(),\n MASTER_LANGUAGE: isoToSapLang(obj.masterLanguage),\n RESPONSIBLE: obj.responsible,\n PACKAGE_REF: obj.packageName,\n },\n },\n }),\n\n fromAbapGit: ({ DRUL }) => ({\n name: (DRUL?.METADATA?.NAME ?? '').toUpperCase(),\n masterLanguage: sapLangToIso(DRUL?.METADATA?.MASTER_LANGUAGE),\n responsible: DRUL?.METADATA?.RESPONSIBLE,\n packageName: DRUL?.METADATA?.PACKAGE_REF,\n }),\n});\n","/**\n * Generic OBJSL-driven object handlers for abapGit format\n *\n * Upstream `zcl_abapgit_objects_generic` serializes every table listed\n * in the OBJSL runtime metadata for the object type as an element named\n * after the table, containing <item> rows with the table's DDIC fields.\n * The table list is SAP runtime metadata, so these handlers use a\n * wildcard schema and map a `tables` record (table name → rows)\n * directly onto the XML payload.\n */\n\nimport type { AbapGitSchema } from '../base';\nimport { createHandler, unwrapData } from '../base';\nimport {\n aifc,\n aqbg,\n aqqu,\n aqsg,\n asfc,\n g4ba,\n g4bs,\n iwmo,\n iwom,\n iwpr,\n iwsg,\n iwsv,\n iwvb,\n sldd,\n sobj,\n sppf,\n ueno,\n wapa,\n wdyn,\n} from '../../../schemas/generated';\n\ntype GenericObjslObject = {\n name: string;\n /** Table name → table rows ({ item: [...] } or row list) */\n tables?: Record<string, unknown>;\n};\n\nfunction createGenericObjslHandler<\n TSchema extends AbapGitSchema<unknown, unknown>,\n>(type: string, schema: TSchema) {\n return createHandler<GenericObjslObject, TSchema>(type, {\n schema,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<GenericObjslObject>(raw);\n return { ...(obj.tables ?? {}) };\n },\n\n fromAbapGit: (values) => ({\n name: '',\n tables: { ...(values as Record<string, unknown>) },\n }),\n });\n}\n\nexport const aifcHandler = createGenericObjslHandler('AIFC', aifc);\nexport const aqbgHandler = createGenericObjslHandler('AQBG', aqbg);\nexport const aqquHandler = createGenericObjslHandler('AQQU', aqqu);\nexport const aqsgHandler = createGenericObjslHandler('AQSG', aqsg);\nexport const asfcHandler = createGenericObjslHandler('ASFC', asfc);\nexport const g4baHandler = createGenericObjslHandler('G4BA', g4ba);\nexport const g4bsHandler = createGenericObjslHandler('G4BS', g4bs);\nexport const iwmoHandler = createGenericObjslHandler('IWMO', iwmo);\nexport const iwomHandler = createGenericObjslHandler('IWOM', iwom);\nexport const iwprHandler = createGenericObjslHandler('IWPR', iwpr);\nexport const iwsgHandler = createGenericObjslHandler('IWSG', iwsg);\nexport const iwsvHandler = createGenericObjslHandler('IWSV', iwsv);\nexport const iwvbHandler = createGenericObjslHandler('IWVB', iwvb);\nexport const slddHandler = createGenericObjslHandler('SLDD', sldd);\nexport const sobjHandler = createGenericObjslHandler('SOBJ', sobj);\nexport const sppfHandler = createGenericObjslHandler('SPPF', sppf);\nexport const uenoHandler = createGenericObjslHandler('UENO', ueno);\n\n// WAPA (BSP application) and WDYN (Web Dynpro component) serialize\n// arbitrary SAP structures (O2*/WDY_* DDIC types not available at\n// compile time), so they use the same wildcard payload.\nexport const wapaHandler = createGenericObjslHandler('WAPA', wapa);\nexport const wdynHandler = createGenericObjslHandler('WDYN', wdyn);\n","/**\n * Raw XML object handlers for abapGit format\n *\n * Upstream serializers for these types call `io_xml->set_raw()`, which\n * replaces the asx:abap envelope with the native SAP XML document:\n * the file is `<abapGit ...><SAP_ROOT>...</SAP_ROOT></abapGit>`.\n * Handlers map the `raw` record (SAP root element name → content)\n * onto the document verbatim via the wildcard schema.\n */\n\nimport type { AbapGitSchema } from '../base';\nimport { createHandler, unwrapData } from '../base';\nimport { formatAbapGitXml } from '../xml-format';\nimport {\n ecat,\n ecsd,\n ecsp,\n ectc,\n ectd,\n ecvo,\n fdt0,\n sfpi,\n ssfo,\n} from '../../../schemas/generated';\n\ntype RawXmlObject = {\n name: string;\n /** SAP XML root element name → parsed content (arbitrary structure) */\n raw?: Record<string, unknown>;\n};\n\nfunction createRawXmlHandler<TSchema extends AbapGitSchema<unknown, unknown>>(\n type: string,\n schema: TSchema,\n) {\n return createHandler<RawXmlObject, TSchema>(type, {\n schema,\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n\n toAbapGit: (raw) => {\n const obj = unwrapData<RawXmlObject>(raw);\n return { ...(obj.raw ?? {}) };\n },\n\n fromAbapGit: (values) => ({\n name: '',\n raw: { ...(values as Record<string, unknown>) },\n }),\n\n serialize: async (obj, ctx) => {\n const xml = schema.build({\n ...(obj.raw ?? {}),\n version: 'v1.0.0',\n serializer: `LCL_OBJECT_${type}`,\n serializer_version: 'v1.0.0',\n } as never);\n return [\n ctx.createFile(\n `${ctx.getObjectName(obj)}.${ctx.fileExtension}.xml`,\n formatAbapGitXml(xml),\n ),\n ];\n },\n });\n}\n\nexport const ecatHandler = createRawXmlHandler('ECAT', ecat);\nexport const ecsdHandler = createRawXmlHandler('ECSD', ecsd);\nexport const ecspHandler = createRawXmlHandler('ECSP', ecsp);\nexport const ectcHandler = createRawXmlHandler('ECTC', ectc);\nexport const ectdHandler = createRawXmlHandler('ECTD', ectd);\nexport const ecvoHandler = createRawXmlHandler('ECVO', ecvo);\nexport const fdt0Handler = createRawXmlHandler('FDT0', fdt0);\nexport const sfpiHandler = createRawXmlHandler('SFPI', sfpi);\nexport const ssfoHandler = createRawXmlHandler('SSFO', ssfo);\n","/**\n * abapGit Folder Logic\n *\n * Shared functions for resolving SAP package names from directory paths\n * using abapGit's folder logic (PREFIX/FULL).\n *\n * Used by both the serializer (import: SAP → Git) and deserializer (export: Git → SAP).\n */\n\nexport type FolderLogic = 'prefix' | 'full' | 'full-with-root';\n\nexport function stripSlashes(s: string): string {\n let start = 0;\n let end = s.length;\n while (start < end && s[start] === '/') start++;\n while (end > start && s[end - 1] === '/') end--;\n return s.slice(start, end);\n}\n\n/**\n * Parse FOLDER_LOGIC from .abapgit.xml content\n */\nexport function parseFolderLogicFromAbapGitXml(\n xmlContent: string,\n): FolderLogic | undefined {\n const match = /<FOLDER_LOGIC>([^<]+)<\\/FOLDER_LOGIC>/i.exec(xmlContent);\n if (!match) {\n return undefined;\n }\n\n const normalized = match[1]!.trim().toUpperCase();\n if (normalized === 'PREFIX') {\n return 'prefix';\n }\n if (normalized === 'FULL') {\n return 'full';\n }\n\n return undefined;\n}\n\n/**\n * Parse STARTING_FOLDER from .abapgit.xml content\n */\nexport function parseStartingFolderFromAbapGitXml(\n xmlContent: string,\n): string | undefined {\n const match = /<STARTING_FOLDER>([^<]+)<\\/STARTING_FOLDER>/i.exec(xmlContent);\n return match ? match[1]!.trim() : undefined;\n}\n\n/**\n * Parse abapGit repository metadata from .abapgit.xml content\n */\nexport function parseAbapGitMetadata(xmlContent: string): {\n folderLogic: FolderLogic;\n startingFolder: string;\n} {\n return {\n folderLogic: parseFolderLogicFromAbapGitXml(xmlContent) ?? 'prefix',\n startingFolder: parseStartingFolderFromAbapGitXml(xmlContent) ?? '/src/',\n };\n}\n\n/**\n * Reverse of calculatePackageDir — compute SAP package name from directory path\n *\n * Given a directory path relative to the starting folder, the folder logic,\n * and the root package name, compute the SAP package name.\n *\n * PREFIX mode: root 'ZABAPGIT_EXAMPLES' + dir 'clas' → 'ZABAPGIT_EXAMPLES_CLAS'\n * FULL mode: dir 'zabapgit_examples_clas' → 'ZABAPGIT_EXAMPLES_CLAS'\n *\n * @param dirPath - Directory path relative to starting folder\n * @param folderLogic - Folder logic mode (prefix or full)\n * @param rootPackage - Root SAP package name\n * @returns SAP package name\n */\nexport function resolvePackageFromDir(\n dirPath: string,\n folderLogic: FolderLogic,\n rootPackage: string,\n): string {\n if (!dirPath || dirPath === '.' || dirPath === '/') {\n return rootPackage;\n }\n\n const normalized = stripSlashes(dirPath);\n if (!normalized) return rootPackage;\n\n const parts = normalized.split('/').filter(Boolean);\n if (parts.length === 0) return rootPackage;\n\n switch (folderLogic) {\n case 'prefix': {\n let pkg = rootPackage;\n for (const part of parts) {\n pkg = pkg + '_' + part.toUpperCase();\n }\n return pkg;\n }\n\n case 'full':\n case 'full-with-root': {\n return parts.at(-1)!.toUpperCase();\n }\n\n default:\n return rootPackage;\n }\n}\n\n/**\n * Reverse of resolvePackageFromDir — given a SAP package name and the\n * relative directory of an object, back-derive the root package.\n *\n * PREFIX mode: sapPackage 'ZABAPGIT_EXAMPLES_FUGR' + dir 'fugr' → 'ZABAPGIT_EXAMPLES'\n * FULL mode: cannot derive root (returns undefined)\n *\n * @param sapPackage - Actual SAP package name (from GET response)\n * @param relDir - Directory path relative to starting folder\n * @param folderLogic - Folder logic mode\n * @returns Root package name, or undefined if it cannot be derived\n */\nexport function reverseResolveRootPackage(\n sapPackage: string,\n relDir: string,\n folderLogic: FolderLogic,\n): string | undefined {\n if (!relDir || relDir === '.' || relDir === '/') {\n return sapPackage; // Object is at root level — its package IS the root\n }\n\n const normalized = stripSlashes(relDir);\n if (!normalized) return sapPackage;\n\n const parts = normalized.split('/').filter(Boolean);\n if (parts.length === 0) return sapPackage;\n\n switch (folderLogic) {\n case 'prefix': {\n // In PREFIX mode: ROOT + _PART1 + _PART2 = sapPackage\n // So ROOT = sapPackage minus the suffix\n const suffix = '_' + parts.map((p) => p.toUpperCase()).join('_');\n if (sapPackage.toUpperCase().endsWith(suffix)) {\n return sapPackage.slice(0, -suffix.length);\n }\n return undefined;\n }\n\n case 'full':\n case 'full-with-root':\n // In FULL mode, package name IS the last directory segment —\n // cannot reliably derive the root\n return undefined;\n\n default:\n return undefined;\n }\n}\n\n/**\n * Parse folder logic from a string value (CLI option or config)\n */\nexport function parseFolderLogic(value: unknown): FolderLogic | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const normalized = value.trim().toLowerCase();\n if (\n normalized === 'prefix' ||\n normalized === 'full' ||\n normalized === 'full-with-root'\n ) {\n return normalized;\n }\n\n return undefined;\n}\n\n/**\n * Calculate package directory based on folder logic (for import/serialization)\n *\n * @param packagePath - Full package hierarchy from root to current\n * @param folderLogic - Folder logic mode\n * @returns Package directory relative to src/\n */\nexport function calculatePackageDir(\n packagePath: string[],\n folderLogic: FolderLogic,\n): string {\n if (packagePath.length === 0) {\n return '';\n }\n\n switch (folderLogic) {\n case 'prefix': {\n if (packagePath.length === 1) {\n return '';\n }\n\n const parts: string[] = [];\n for (let i = 1; i < packagePath.length; i++) {\n const fullName = packagePath[i];\n const parentName = packagePath[i - 1];\n const prefix = parentName + '_';\n const relativeName = fullName.startsWith(prefix)\n ? fullName.slice(prefix.length)\n : fullName;\n parts.push(relativeName.toLowerCase());\n }\n return parts.join('/');\n }\n\n case 'full': {\n return packagePath.map((p) => p.toLowerCase()).join('/');\n }\n\n case 'full-with-root': {\n return packagePath.map((p) => p.toLowerCase()).join('/');\n }\n\n default:\n return '';\n }\n}\n\n/**\n * Generate .abapgit.xml repository metadata file\n */\nexport function generateAbapGitXml(folderLogic: FolderLogic): string {\n const abapGitFolderLogic = folderLogic === 'prefix' ? 'PREFIX' : 'FULL';\n\n return `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<asx:abap xmlns:asx=\"http://www.sap.com/abapxml\" version=\"1.0\">\n <asx:values>\n <DATA>\n <MASTER_LANGUAGE>E</MASTER_LANGUAGE>\n <STARTING_FOLDER>/src/</STARTING_FOLDER>\n <FOLDER_LOGIC>${abapGitFolderLogic}</FOLDER_LOGIC>\n </DATA>\n </asx:values>\n</asx:abap>\n`;\n}\n","/**\n * abapGit filename parsing utilities.\n *\n * Extracted into a standalone module so it can be unit-tested without\n * pulling in the full handler/schema dependency chain.\n */\n\n/**\n * abapGit file naming convention:\n * - XML metadata: {name}.{type}.xml (e.g., zcl_myclass.clas.xml)\n * - AFF JSON metadata: {name}.{type}.json (e.g., zfoo.bdef.json)\n * - Source code: {name}.{type}.abap (e.g., zcl_myclass.clas.abap)\n * - Source includes: {name}.{type}.{suffix}.abap (e.g., zcl_myclass.clas.testclasses.abap)\n * - AFF source files: {name}.{type}.abdl, {name}.{type}.acds, {name}.{type}.asrvd\n */\n\n/**\n * Parse abapGit filename to extract object info\n *\n * Supports both legacy XML metadata (.xml) and AFF JSON metadata (.json),\n * plus source file extensions (.abap, .abdl, .acds, .asrvd).\n */\nexport function parseAbapGitFilename(filename: string): {\n name: string;\n type: string;\n suffix?: string;\n extension: string;\n} | null {\n // Match patterns like: name.type.xml, name.type.json, name.type.suffix.abap,\n // name.type.<suffix>.abdl/.acds/.asrvd source files.\n const match = filename.match(\n /^([^.]+)\\.([^.]+)(?:\\.([^.]+))?\\.(xml|json|abap|abdl|acds|asrvd)$/,\n );\n if (!match) return null;\n\n const [, name, type, suffixOrExt, extension] = match;\n\n // If 4 parts, middle is suffix; if 3 parts, no suffix\n return {\n name: name.toUpperCase(),\n type: type.toUpperCase(),\n suffix: suffixOrExt && suffixOrExt !== extension ? suffixOrExt : undefined,\n extension,\n };\n}\n","/**\n * abapGit Deserializer - Export (File → ADK)\n *\n * Reads abapGit format files and yields AdkObject instances.\n * Uses a true generator pattern for memory efficiency.\n *\n * Delegates type-specific deserialization to handlers via fromAbapGit().\n */\n\nimport type { FileTree, ExportOptions } from '@abapify/adt-plugin';\nimport type { AdkObject } from '@abapify/adk';\nimport { createAdk, type AdtClient } from '@abapify/adk';\nimport { getHandler, getSupportedTypes } from './handlers';\nimport {\n parseAbapGitMetadata,\n resolvePackageFromDir,\n stripSlashes,\n} from './folder-logic';\nimport { abapLangVerToAdt } from './handlers/lang';\nimport { extractFunctionDescriptors } from './handlers/objects/fugr';\n\n/**\n * abapGit file naming convention:\n * - XML metadata: {name}.{type}.xml (e.g., zcl_myclass.clas.xml)\n * - AFF JSON metadata: {name}.{type}.json (e.g., zfoo.bdef.json)\n * - Source code: {name}.{type}.abap (e.g., zcl_myclass.clas.abap)\n * - Source includes: {name}.{type}.{suffix}.abap (e.g., zcl_myclass.clas.testclasses.abap)\n * - AFF source files: {name}.{type}.abdl, {name}.{type}.acds, {name}.{type}.asrvd\n */\n\nimport { parseAbapGitFilename } from './filename-parser';\n\n// Re-export for backward compatibility — format-plugin and other modules\n// import parseAbapGitFilename from deserializer.\nexport { parseAbapGitFilename };\n\n/**\n * Group related files by object (name + type)\n */\ninterface ObjectFiles {\n name: string;\n type: string;\n /** Legacy XML metadata file path (if present) */\n xmlFile?: string;\n /** AFF JSON metadata file path (if present) */\n jsonFile?: string;\n sourceFiles: Array<{ path: string; suffix?: string; binary?: boolean }>;\n}\n\n/**\n * Resolve folder logic and start dir from .abapgit.xml\n */\nasync function resolveFolderConfig(fileTree: FileTree): Promise<{\n folderLogic: import('./folder-logic').FolderLogic;\n startDir: string;\n hasAbapGitXml: boolean;\n}> {\n let folderLogic: import('./folder-logic').FolderLogic = 'prefix';\n let startDir = '';\n const hasAbapGitXml = await fileTree.exists('.abapgit.xml');\n if (hasAbapGitXml) {\n try {\n const xml = await fileTree.read('.abapgit.xml');\n const meta = parseAbapGitMetadata(xml);\n folderLogic = meta.folderLogic;\n startDir = stripSlashes(meta.startingFolder);\n } catch {\n // Fall through to defaults if XML parsing fails\n }\n }\n return { folderLogic, startDir, hasAbapGitXml };\n}\n\n/**\n * Parse a metadata file path into an object key and register it in the map.\n */\nfunction registerMetadataFile(\n path: string,\n supportedTypes: Set<string>,\n objectMap: Map<string, ObjectFiles>,\n field: 'xmlFile' | 'jsonFile',\n): void {\n const filename = path.slice(path.lastIndexOf('/') + 1);\n const parsed = parseAbapGitFilename(filename);\n if (!parsed) return;\n if (!supportedTypes.has(parsed.type.toLowerCase())) return;\n if (parsed.suffix) return;\n\n const key = `${parsed.name}:${parsed.type}`;\n if (!objectMap.has(key)) {\n objectMap.set(key, {\n name: parsed.name,\n type: parsed.type,\n sourceFiles: [],\n });\n }\n objectMap.get(key)![field] = path;\n}\n\n/**\n * Collect all source files and attach them to their objects in the map.\n */\nasync function collectSourceFiles(\n fileTree: FileTree,\n objectMap: Map<string, ObjectFiles>,\n): Promise<void> {\n const [abapFiles, abdlFiles, acdsFiles, asrvdFiles, xmlFiles, allFiles] =\n await Promise.all([\n fileTree.glob('**/*.abap'),\n fileTree.glob('**/*.abdl'),\n fileTree.glob('**/*.acds'),\n fileTree.glob('**/*.asrvd'),\n fileTree.glob('**/*.xml'),\n fileTree.glob('**/*'),\n ]);\n for (const sourcePath of [\n ...abapFiles,\n ...abdlFiles,\n ...acdsFiles,\n ...asrvdFiles,\n ]) {\n const filename = sourcePath.slice(sourcePath.lastIndexOf('/') + 1);\n const parsed = parseAbapGitFilename(filename);\n if (!parsed) continue;\n const obj = objectMap.get(`${parsed.name}:${parsed.type}`);\n if (obj) obj.sourceFiles.push({ path: sourcePath, suffix: parsed.suffix });\n }\n\n collectXmlCompanions(xmlFiles, objectMap);\n collectBinaryCompanions(allFiles, objectMap);\n}\n\n/**\n * Suffixed XML companions (e.g. {name}.form.tdlines_E.xml) are sources,\n * not metadata — non-suffixed .xml files are already the xmlFile.\n */\nfunction collectXmlCompanions(\n xmlFiles: string[],\n objectMap: Map<string, ObjectFiles>,\n): void {\n for (const sourcePath of xmlFiles) {\n const filename = sourcePath.slice(sourcePath.lastIndexOf('/') + 1);\n const parsed = parseAbapGitFilename(filename);\n if (!parsed?.suffix) continue;\n const obj = objectMap.get(`${parsed.name}:${parsed.type}`);\n if (obj) obj.sourceFiles.push({ path: sourcePath, suffix: parsed.suffix });\n }\n}\n\n/**\n * Binary/other companions ({name}.{type}.{filename}, e.g. SMIM MIME\n * objects) don't match the source/metadata extensions at all.\n */\nfunction collectBinaryCompanions(\n allFiles: string[],\n objectMap: Map<string, ObjectFiles>,\n): void {\n for (const sourcePath of allFiles) {\n const filename = sourcePath.slice(sourcePath.lastIndexOf('/') + 1);\n const match = filename.match(/^([^.]+)\\.([^.]+)\\..+$/);\n if (!match) continue;\n const key = `${match[1].toUpperCase()}:${match[2].toUpperCase()}`;\n const obj = objectMap.get(key);\n if (!obj) continue;\n if (parseAbapGitFilename(filename)) continue; // already handled above\n const suffix = filename.slice(match[1].length + match[2].length + 2);\n obj.sourceFiles.push({ path: sourcePath, suffix, binary: true });\n }\n}\n\n/**\n * Parse metadata (XML or JSON) and return values + isAffJson flag.\n */\nasync function parseMetadata(\n fileTree: FileTree,\n objFiles: ObjectFiles,\n handler: ReturnType<typeof getHandler>,\n): Promise<{ values: Record<string, unknown>; isAffJson: boolean } | null> {\n if (objFiles.jsonFile) {\n const jsonContent = await fileTree.read(objFiles.jsonFile);\n let jsonData: Record<string, unknown>;\n try {\n jsonData = JSON.parse(jsonContent) as Record<string, unknown>;\n } catch (parseError) {\n console.error(\n `Failed to parse AFF JSON ${objFiles.jsonFile}:`,\n parseError,\n );\n return null;\n }\n const values = handler?.fromAffJson\n ? (handler.fromAffJson(jsonData) as Record<string, unknown>)\n : jsonData;\n return { values, isAffJson: true };\n }\n if (objFiles.xmlFile) {\n const xmlContent = await fileTree.read(objFiles.xmlFile);\n const parsed = handler!.schema.parse(xmlContent);\n const abapGit = (parsed as any)?.abapGit ?? {};\n // Raw XML formats (SSFO, eCATT family, FDT0...) store the SAP XML\n // root directly under abapGit instead of abap/values.\n const values =\n abapGit.abap?.values ??\n Object.fromEntries(\n Object.entries(abapGit).filter(\n ([key]) =>\n !['version', 'serializer', 'serializer_version'].includes(key),\n ),\n );\n return { values, isAffJson: false };\n }\n return null;\n}\n\n/**\n * Build the payload from handler or filename fallback.\n */\nfunction buildPayload(\n handler: ReturnType<typeof getHandler>,\n values: Record<string, unknown>,\n isAffJson: boolean,\n objFiles: ObjectFiles,\n): { name: string; description?: string; [key: string]: unknown } {\n if (isAffJson && handler?.fromAffJson) {\n return values as { name: string; description?: string };\n }\n if (isAffJson) {\n return { name: objFiles.name };\n }\n if (handler?.fromAbapGit) {\n return handler.fromAbapGit(values);\n }\n return { name: objFiles.name };\n}\n\n/**\n * Set sources on an ADK object using handler or fallback.\n */\nfunction setObjectSources(\n handler: ReturnType<typeof getHandler>,\n adkObject: AdkObject,\n sources: Record<string, string>,\n): void {\n if (Object.keys(sources).length === 0) return;\n if (handler?.setSources) {\n handler.setSources(adkObject, sources);\n return;\n }\n if (sources['main']) (adkObject as any)._pendingSource = sources['main'];\n if (Object.keys(sources).length > 1) {\n (adkObject as any)._pendingSources = sources;\n }\n}\n\n/**\n * Resolve packageRef on an ADK object from folder logic or rootPackage.\n */\nfunction resolvePackageRef(\n adkObject: AdkObject,\n options: ExportOptions | undefined,\n hasAbapGitXml: boolean,\n folderLogic: import('./folder-logic').FolderLogic,\n): void {\n if (!options?.rootPackage) return;\n const data = (adkObject as any)._data;\n if (!data || data.packageRef) return;\n if (hasAbapGitXml) {\n const relDir = (adkObject as any)._relDir ?? '';\n const pkgName = resolvePackageFromDir(\n relDir,\n folderLogic,\n options.rootPackage,\n );\n data.packageRef = { name: pkgName };\n } else {\n data.packageRef = { name: options.rootPackage };\n }\n}\n\n/**\n * Set abapLanguageVersion on an ADK object if provided in options.\n */\nfunction setAbapLanguageVersion(\n adkObject: AdkObject,\n options: ExportOptions | undefined,\n): void {\n if (!options?.abapLanguageVersion) return;\n const data = (adkObject as any)._data;\n if (data && !data.abapLanguageVersion) {\n data.abapLanguageVersion =\n abapLangVerToAdt(options.abapLanguageVersion) ??\n options.abapLanguageVersion;\n }\n}\n\n/**\n * Deserialize abapGit files to ADK objects\n *\n * True generator - yields objects one at a time as they're discovered.\n * Resolves packageRef using abapGit folder logic when rootPackage is provided.\n *\n * @param fileTree - Virtual file system to read from\n * @param client - ADT client for creating ADK objects\n * @param options - Export options (root package, language version, etc.)\n */\nexport async function* deserialize(\n fileTree: FileTree,\n client: AdtClient,\n options?: ExportOptions,\n): AsyncGenerator<AdkObject> {\n const adk = createAdk(client);\n const { folderLogic, startDir, hasAbapGitXml } =\n await resolveFolderConfig(fileTree);\n\n // Find all metadata files (XML = legacy, JSON = AFF)\n const [xmlFiles, jsonFiles] = await Promise.all([\n fileTree.glob('**/*.xml'),\n fileTree.glob('**/*.json'),\n ]);\n\n const objectMap = new Map<string, ObjectFiles>();\n const supportedTypes = new Set(\n getSupportedTypes().map((t) => t.toLowerCase()),\n );\n\n for (const xmlPath of xmlFiles) {\n if (xmlPath.endsWith('.abapgit.xml')) continue;\n if (xmlPath.endsWith('package.devc.xml')) continue;\n registerMetadataFile(xmlPath, supportedTypes, objectMap, 'xmlFile');\n }\n\n for (const jsonPath of jsonFiles) {\n registerMetadataFile(jsonPath, supportedTypes, objectMap, 'jsonFile');\n }\n\n await collectSourceFiles(fileTree, objectMap);\n\n // Process each object and yield\n for (const [, objFiles] of objectMap) {\n if (!objFiles.xmlFile && !objFiles.jsonFile) continue;\n\n const handler = getHandler(objFiles.type);\n if (!handler) continue;\n\n try {\n const meta = await parseMetadata(fileTree, objFiles, handler);\n if (!meta) continue;\n const { values, isAffJson } = meta;\n\n // Read source files\n const sources: Record<string, string> = {};\n for (const { path, suffix, binary } of objFiles.sourceFiles) {\n const content = binary\n ? (await fileTree.readBuffer(path)).toString('base64')\n : await fileTree.read(path);\n const sourceKey = suffix\n ? (handler.suffixToSourceKey?.[suffix] ?? suffix)\n : 'main';\n sources[sourceKey] = content;\n }\n\n const payload = buildPayload(handler, values, isAffJson, objFiles);\n const objectName = payload.name || objFiles.name;\n const adkType =\n typeof payload.type === 'string' ? payload.type : objFiles.type;\n const adkObject = adk.getWithData(\n { ...payload, name: objectName },\n adkType,\n ) as AdkObject;\n\n setObjectSources(handler, adkObject, sources);\n\n if (payload.description) {\n (adkObject as any)._pendingDescription = payload.description;\n }\n\n // Compute relative directory for package resolution\n if (hasAbapGitXml) {\n const metadataFile = objFiles.xmlFile ?? objFiles.jsonFile ?? '';\n const sourceDir = metadataFile.split('/').slice(0, -1).join('/');\n const relDir = sourceDir.startsWith(startDir)\n ? sourceDir.slice(startDir.length).replace(/^\\/+/, '')\n : sourceDir;\n (adkObject as any)._relDir = relDir;\n (adkObject as any)._folderLogic = folderLogic;\n }\n\n resolvePackageRef(adkObject, options, hasAbapGitXml, folderLogic);\n setAbapLanguageVersion(adkObject, options);\n\n yield adkObject;\n\n // For compound objects (FUGR), yield child objects (function modules)\n if (objFiles.type === 'FUGR' && payload._functions) {\n yield* yieldFugrChildren(adk, payload, objectName, options, adkObject);\n }\n } catch (error) {\n console.error(\n `Failed to deserialize ${objFiles.type} ${objFiles.name}:`,\n error,\n );\n }\n }\n}\n\n/**\n * Yield FUGR child function modules as separate ADK objects.\n */\nasync function* yieldFugrChildren(\n adk: ReturnType<typeof createAdk>,\n payload: { _functions?: unknown },\n parentName: string,\n options: ExportOptions | undefined,\n parentObject: AdkObject,\n): AsyncGenerator<AdkObject> {\n const fmDescriptors = extractFunctionDescriptors(payload._functions);\n const fmSources = (parentObject as any)._pendingFmSources as\n Record<string, string> | undefined;\n for (const fm of fmDescriptors) {\n try {\n const fmObject = adk.getWithData(\n {\n name: fm.funcName,\n type: 'FUGR/FF',\n _groupName: parentName,\n description: fm.shortText ?? '',\n processingType: fm.processingType,\n basXMLEnabled: fm.basXMLEnabled,\n },\n 'FUGR/FF',\n ) as AdkObject;\n const fmSource = fmSources?.[fm.funcName.toLowerCase()];\n if (fmSource) (fmObject as any)._pendingSource = fmSource;\n setAbapLanguageVersion(fmObject, options);\n yield fmObject;\n } catch (fmError) {\n console.error(\n `Failed to deserialize FM ${fm.funcName} in FUGR ${parentName}:`,\n fmError,\n );\n }\n }\n}\n","/**\n * abapGit as a FormatPlugin.\n *\n * This is the thin adapter that plugs the abapGit handler registry into the\n * generic `FormatPlugin` contract defined by `@abapify/adt-plugin`. External\n * consumers (adt-export, adt-diff, adt-cli) interact with this plugin\n * **through the registry only** — they look it up with\n * `getFormatPlugin('abapgit')` and never import this package directly.\n *\n * Registration happens as a side-effect of importing `@abapify/adt-plugin-abapgit`;\n * the CLI bootstraps the registration once in `adt-cli/src/lib/cli.ts`.\n */\n\nimport {\n FormatMaterializationError,\n type FormatPlugin,\n type FormatHandler,\n type MaterializedFormatFile,\n} from '@abapify/adt-plugin';\nimport { posix } from 'node:path';\nimport {\n getHandler as getAbapGitHandler,\n getSupportedTypes,\n} from './handlers/registry';\nimport { parseAbapGitFilename } from './deserializer';\nimport { calculatePackageDir, parseFolderLogic } from './folder-logic';\n\ntype ParsedFilename = NonNullable<ReturnType<typeof parseAbapGitFilename>>;\n\nfunction classifyFile(\n parsed: ParsedFilename,\n handler: FormatHandler,\n): { role: 'metadata' } | { role: 'source'; sourceComponent: string } {\n if (parsed.extension === 'xml' || parsed.extension === 'json') {\n return { role: 'metadata' };\n }\n\n if (!parsed.suffix) {\n return { role: 'source', sourceComponent: 'main' };\n }\n\n if (\n parsed.type.toLowerCase() === 'fugr' &&\n parsed.suffix.toLowerCase() === `l${parsed.name.toLowerCase()}top`\n ) {\n return { role: 'source', sourceComponent: 'main' };\n }\n\n const sourceComponent =\n handler.suffixToSourceKey?.[parsed.suffix] ?? parsed.suffix;\n return { role: 'source', sourceComponent };\n}\n\nfunction assertSupportsExplicitSources(\n handler: FormatHandler,\n objectType: string,\n sources?: Readonly<Record<string, string>>,\n): void {\n if (!sources) return;\n if (Object.keys(sources).length === 0) return;\n if (handler.supportsExplicitSources) return;\n throw new FormatMaterializationError(\n 'FORMAT_SOURCE_COMPONENT_UNSUPPORTED',\n `abapGit handler for \"${objectType}\" does not support explicit source selection.`,\n );\n}\n\nasync function buildMaterializedFiles(\n handler: FormatHandler,\n object: unknown,\n packageDir: string,\n sources?: Readonly<Record<string, string>>,\n format?: 'aff' | 'legacy',\n): Promise<MaterializedFormatFile[]> {\n const serialized = await handler.serialize(object, {\n ...(sources !== undefined ? { sources } : {}),\n ...(format !== undefined ? { format } : {}),\n });\n return serialized\n .map((file): MaterializedFormatFile => {\n const parsed = parseAbapGitFilename(file.path);\n const classification = parsed\n ? classifyFile(parsed, handler)\n : { role: 'source' as const, sourceComponent: 'main' };\n const path = posix.join('src', packageDir, file.path);\n return {\n ...file,\n path,\n ...classification,\n };\n })\n .sort((left, right) =>\n left.path < right.path ? -1 : left.path > right.path ? 1 : 0,\n );\n}\n\nexport const abapgitFormatPlugin: FormatPlugin = {\n id: 'abapgit',\n description: 'abapGit serialization format',\n\n // `supportedTypes` is backed by the live handler registry so registering\n // additional handlers at import time is reflected here without extra work.\n get supportedTypes(): ReadonlyArray<string> {\n return getSupportedTypes();\n },\n\n getHandler(type: string): FormatHandler | undefined {\n // The concrete abapGit `ObjectHandler` is a structural superset of the\n // generic `FormatHandler`, so this is just a widening cast.\n const handler = getAbapGitHandler(type) as unknown as\n FormatHandler | undefined;\n return handler\n ? {\n ...handler,\n supportsExplicitSources: handler.supportsExplicitSources ?? false,\n }\n : undefined;\n },\n\n async materialize(input) {\n const handler = this.getHandler(input.objectType);\n if (!handler) {\n throw new FormatMaterializationError(\n 'FORMAT_OBJECT_TYPE_UNSUPPORTED',\n `abapGit does not support object type \"${input.objectType}\".`,\n );\n }\n\n assertSupportsExplicitSources(handler, input.objectType, input.sources);\n\n const folderLogic =\n parseFolderLogic(input.formatOptions?.folderLogic) ?? 'prefix';\n const packageDir = calculatePackageDir([...input.packagePath], folderLogic);\n const files = await buildMaterializedFiles(\n handler,\n input.object,\n packageDir,\n input.sources,\n input.formatOptions?.format as 'aff' | 'legacy' | undefined,\n );\n return { files };\n },\n\n parseFilename(filename: string) {\n const parsed = parseAbapGitFilename(filename);\n return parsed ?? undefined;\n },\n};\n\nexport default abapgitFormatPlugin;\n","import { mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, isAbsolute, join, relative, sep } from 'node:path';\nimport type { AdkObject } from '@abapify/adk';\nimport { getTypeForKind } from '@abapify/adk';\nimport { getHandler } from './handlers';\n\n/**\n * Serialize ADK objects to abapGit format\n *\n * This class uses the handler registry to delegate serialization\n * to type-specific handlers.\n */\nexport class AbapGitSerializer {\n /**\n * Serialize a single object (called by plugin API)\n */\n async serializeObjectPublic(\n obj: AdkObject,\n targetPath: string,\n packageDir: string,\n ): Promise<string[]> {\n const fullPackageDir = join(targetPath, 'src', packageDir);\n mkdirSync(fullPackageDir, { recursive: true });\n\n // Get object type from ADK kind mapping\n const objectType = getTypeForKind(obj.kind) ?? obj.type;\n const handler = getHandler(objectType);\n\n if (!handler) {\n throw new Error(\n `No handler available for object type: ${objectType} (kind: ${obj.kind})`,\n );\n }\n\n // Serialize using handler\n const serializedFiles = await handler.serialize(obj);\n\n // Write files to disk\n const writtenFiles: string[] = [];\n for (const file of serializedFiles) {\n const filePath = join(fullPackageDir, file.path);\n const relativePath = relative(fullPackageDir, filePath);\n if (\n !relativePath ||\n isAbsolute(relativePath) ||\n relativePath === '..' ||\n relativePath.startsWith(`..${sep}`)\n ) {\n throw new Error(`Invalid serialized file path: ${file.path}`);\n }\n mkdirSync(dirname(filePath), { recursive: true });\n writeFileSync(filePath, file.content, file.encoding ?? 'utf8');\n writtenFiles.push(filePath);\n }\n\n return writtenFiles;\n }\n}\n","import {\n createPlugin,\n type AdtPlugin,\n type ImportContext,\n type DeleteResult,\n} from '@abapify/adt-plugin';\nimport type { AdtClient } from '@abapify/adk';\nimport { AbapGitSerializer } from './serializer';\nimport { getSupportedTypes, isSupported } from './handlers';\nimport { deserialize } from './deserializer';\nimport {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n unlinkSync,\n readdirSync,\n} from 'node:fs';\nimport { join, relative, basename } from 'node:path';\n\nimport {\n type FolderLogic,\n parseFolderLogic,\n parseFolderLogicFromAbapGitXml,\n calculatePackageDir,\n generateAbapGitXml,\n resolvePackageFromDir,\n parseAbapGitMetadata,\n} from './folder-logic';\n\nconst serializer = new AbapGitSerializer();\n\n// Store folder logic for afterImport hook (set during import, read in afterImport)\nlet currentFolderLogic: FolderLogic = 'prefix';\n\n/**\n * Recursively collect all file paths under a directory.\n */\nfunction walkDir(dir: string, results: string[] = []): string[] {\n if (!existsSync(dir)) return results;\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {\n walkDir(full, results);\n } else {\n results.push(full);\n }\n }\n return results;\n}\n\n/**\n * Lazy per-srcDir file index.\n *\n * Maps srcDir → (prefix → [absolute file paths]), where prefix is\n * `${name}.${type}.` in lower-case. Built at most once per srcDir per\n * process, so the O(repo-size) directory walk is amortised across all\n * `format.delete()` calls in a single import run instead of repeated for\n * every deleted object.\n */\nconst srcDirIndexCache = new Map<string, Map<string, string[]>>();\n\nfunction getOrBuildSrcIndex(srcDir: string): Map<string, string[]> {\n const cached = srcDirIndexCache.get(srcDir);\n if (cached) return cached;\n\n const index = new Map<string, string[]>();\n for (const filePath of walkDir(srcDir)) {\n const fname = basename(filePath).toLowerCase();\n // Extract the \"<name>.<type>.\" prefix (first two dot-segments + trailing dot)\n const first = fname.indexOf('.');\n if (first === -1) continue;\n const second = fname.indexOf('.', first + 1);\n if (second === -1) continue;\n const key = fname.substring(0, second + 1); // e.g. \"zcl_foo.clas.\"\n const bucket = index.get(key);\n if (bucket) {\n bucket.push(filePath);\n } else {\n index.set(key, [filePath]);\n }\n }\n srcDirIndexCache.set(srcDir, index);\n return index;\n}\n\n/**\n * Find all abapGit files for a given object name and type.\n *\n * abapGit naming convention: `{name}.{type}[.suffix].{ext}`\n * e.g. `zcl_foo.clas.xml`, `zcl_foo.clas.locals_def.abap`\n *\n * Matching is done on the filename base: `{name}.{type}.`. SAP ABAP object\n * names and types **never contain a dot**, so the prefix is unambiguous —\n * `ztabl_del.tabl.` cannot accidentally match `ztabl_del_ext.tabl.xml`\n * because the separator after `ztabl_del` in the prefix is `.` while the\n * other file has `_ext.`.\n *\n * Uses a lazy per-srcDir index so the directory tree is walked at most once\n * per deletion batch rather than once per object.\n */\nfunction findObjectFiles(srcDir: string, name: string, type: string): string[] {\n const prefix = `${name.toLowerCase()}.${type.toLowerCase()}.`;\n return getOrBuildSrcIndex(srcDir).get(prefix) ?? [];\n}\n\nfunction readFolderLogicFromExistingRepo(\n targetPath: string,\n): FolderLogic | undefined {\n const abapgitXmlPath = join(targetPath, '.abapgit.xml');\n if (!existsSync(abapgitXmlPath)) {\n return undefined;\n }\n\n try {\n const xmlContent = readFileSync(abapgitXmlPath, 'utf-8');\n return parseFolderLogicFromAbapGitXml(xmlContent);\n } catch {\n return undefined;\n }\n}\n\nfunction resolveFolderLogic(\n context: ImportContext,\n targetPath: string,\n): FolderLogic {\n const cliFolderLogic = parseFolderLogic(context.formatOptions?.folderLogic);\n if (cliFolderLogic) {\n return cliFolderLogic;\n }\n\n const existingRepoFolderLogic = readFolderLogicFromExistingRepo(targetPath);\n if (existingRepoFolderLogic) {\n return existingRepoFolderLogic;\n }\n\n const configuredFolderLogic = parseFolderLogic(\n context.configFormatOptions?.folderLogic,\n );\n if (configuredFolderLogic) {\n return configuredFolderLogic;\n }\n\n return 'prefix';\n}\n\n/**\n * abapGit Plugin\n *\n * Provides import/export of ADK objects to abapGit repository format.\n */\nexport const abapGitPlugin: AdtPlugin = createPlugin({\n name: 'abapGit',\n version: '1.0.0',\n description: 'abapGit format plugin for ADK objects',\n\n // Registry service\n registry: {\n isSupported,\n getSupportedTypes,\n },\n\n // Format service\n format: {\n async import(object, targetPath, context) {\n try {\n // Get the object's package - for DEVC objects, use name; for others, use package property\n // Note: object.type might be 'DEVC/K' not just 'DEVC'\n const isPackage = object.type?.startsWith('DEVC');\n const objPackage = isPackage\n ? object.name\n : (object as any).package || object.name || 'ROOT';\n\n // Resolve full package path from SAP (root → ... → current)\n // This uses ADK to load package hierarchy via super package references\n const packagePath = await context.resolvePackagePath(objPackage);\n\n // Resolve folder logic with precedence:\n // 1) CLI format options\n // 2) Existing .abapgit.xml in target repository\n // 3) adt.config.ts format options\n // 4) Plugin default\n const folderLogic = resolveFolderLogic(context, targetPath);\n\n // Store for afterImport hook\n currentFolderLogic = folderLogic;\n\n // Calculate package directory based on folder logic\n const packageDir = calculatePackageDir(packagePath, folderLogic);\n\n // Delegate to serializer which handles lazy loading\n const files = await serializer.serializeObjectPublic(\n object,\n targetPath,\n packageDir,\n );\n\n return {\n success: true,\n filesCreated: files,\n };\n } catch (error) {\n return {\n success: false,\n filesCreated: [],\n errors: [error instanceof Error ? error.message : String(error)],\n };\n }\n },\n\n /**\n * Export abapGit files to SAP\n *\n * Reads abapGit format files from FileTree and yields AdkObject instances.\n * True generator - streams objects one at a time for memory efficiency.\n *\n * @param fileTree - Virtual file system abstraction\n * @param client - ADT client for creating ADK objects\n */\n export: (fileTree, client, options?) =>\n deserialize(fileTree, client as AdtClient, options),\n\n /**\n * Delete local abapGit files for an object marked for deletion in SAP.\n *\n * Searches the `<targetPath>/src/` directory tree for files matching\n * the abapGit naming pattern `{name}.{type}[.suffix].{ext}` and removes\n * each one.\n *\n * Known limitation: if the object never made it into the repository (e.g.\n * PROG deletions without obj_func=D), no files are present and nothing\n * happens. This is expected behavior.\n */\n async delete(\n objectRef: { pgmid: string; type: string; name: string },\n targetPath: string,\n _context: ImportContext,\n ): Promise<DeleteResult> {\n try {\n const srcDir = join(targetPath, 'src');\n const matchedFiles = findObjectFiles(\n srcDir,\n objectRef.name,\n objectRef.type,\n );\n\n const filesRemoved: string[] = [];\n const errors: string[] = [];\n for (const filePath of matchedFiles) {\n try {\n unlinkSync(filePath);\n filesRemoved.push(relative(targetPath, filePath));\n } catch (error) {\n const unlinkError = error as NodeJS.ErrnoException;\n if (unlinkError.code === 'ENOENT') {\n // File is already gone, treat as success because the desired end state is reached.\n filesRemoved.push(relative(targetPath, filePath));\n continue;\n }\n\n errors.push(\n error instanceof Error\n ? `Failed to delete ${relative(targetPath, filePath)}: ${error.message}`\n : `Failed to delete ${relative(targetPath, filePath)}: ${String(error)}`,\n );\n }\n }\n\n return {\n success: errors.length === 0,\n filesRemoved,\n ...(errors.length > 0 ? { errors } : {}),\n };\n } catch (error) {\n return {\n success: false,\n filesRemoved: [],\n errors: [error instanceof Error ? error.message : String(error)],\n };\n }\n },\n },\n\n // Lifecycle hooks\n hooks: {\n async afterImport(targetPath) {\n // Ensure target directory exists before writing metadata\n mkdirSync(targetPath, { recursive: true });\n // Generate .abapgit.xml metadata file after import completes\n const abapgitXmlPath = join(targetPath, '.abapgit.xml');\n const abapgitXmlContent = generateAbapGitXml(currentFolderLogic);\n writeFileSync(abapgitXmlPath, abapgitXmlContent, 'utf-8');\n },\n },\n});\n\nexport const __testing = {\n calculatePackageDir,\n generateAbapGitXml,\n parseFolderLogic,\n parseFolderLogicFromAbapGitXml,\n readFolderLogicFromExistingRepo,\n resolveFolderLogic,\n resolvePackageFromDir,\n parseAbapGitMetadata,\n};\n\n// Export for named imports\nexport { abapGitPlugin as AbapGitPlugin };\n\n// Export for default import (dynamic loading)\nexport default abapGitPlugin;\n","import { registerFormatPlugin } from '@abapify/adt-plugin';\nimport { abapgitFormatPlugin } from './lib/format-plugin';\n\n// Self-register as a FormatPlugin at module-load time. Idempotent — safe\n// against dual module-graph evaluation.\nregisterFormatPlugin(abapgitFormatPlugin);\n\n// FormatPlugin export (the preferred public entry-point going forward)\nexport { abapgitFormatPlugin } from './lib/format-plugin';\n\n// Plugin instance\nexport { abapGitPlugin, AbapGitPlugin } from './lib/abapgit';\n\n// Finding resolver for ATC integration\nexport { createFindingResolver } from './lib/finding-resolver';\n\n// Handler registry — for consumers that need to work with handlers directly\nexport {\n getHandler,\n isSupported,\n getSupportedTypes,\n} from './lib/handlers/registry';\nexport type { SerializedFile, ObjectHandler } from './lib/handlers/base';\n\n// Filename parser — shared utility for abapGit file naming convention\nexport { parseAbapGitFilename } from './lib/deserializer';\n\n// ADT URI → abapGit on-disk filename (used for coverage / SonarQube reports)\nexport { adtUriToAbapGitPath } from './lib/filename/adt-uri-to-path';\n\n// XML formatting utilities — shared across serializers and roundtrip\nexport {\n formatXmlAttributes,\n moveNamespaceToAbap,\n formatAbapGitXml,\n} from './lib/handlers/xml-format';\n\n// Folder logic — package resolution from directory paths\nexport {\n resolvePackageFromDir,\n reverseResolveRootPackage,\n parseAbapGitMetadata,\n type FolderLogic,\n} from './lib/folder-logic';\n\n// Re-export types from @abapify/adt-plugin for convenience\nexport type {\n AdtPlugin,\n AbapObjectType,\n ImportContext,\n ImportResult,\n ExportContext,\n ExportResult,\n FormatMaterializationInput,\n FormatMaterializationResult,\n MaterializedFormatFile,\n} from '@abapify/adt-plugin';\n\n// Default export for dynamic loading\nexport { abapGitPlugin as default } from './lib/abapgit';\n"],"mappings":"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ACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACjLA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC/MA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3LA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3KA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5WA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7ZA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClKA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACjVA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACrRA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1TA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7LA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACjGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACjGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChnBA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACX,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5RA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9JA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5NA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC/NA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3OA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACrPA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1WA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9JA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1MA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5RA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACtNA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;IACR;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACvJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7VA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5JA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACjIA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChIA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3SA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACzLA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACtMA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;GACR,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxIA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChZA,sBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC/GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxMA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5LA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACvKA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;KACX,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACrPA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnNA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACvLA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChKA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChIA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,KAAK,EACH,SAAS;GACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb;GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb;GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb;GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb;EACF,EACF;CACF,GACA;EACE,MAAM;EACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;EACA,WAAW,CACT;GACE,MAAM;GACN,MAAM;GACN,WAAW;EACb,CACF;CACF,CACF;AACF;;;;;;;;;;AChGA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACzHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACtHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChKA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACvLA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1NA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACtJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACjHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,KAAK,EACH,SAAS,CACP;GACE,MAAM;GACN,MAAM;GACN,WAAW;EACb,CACF,EACF;CACF,GACA;EACE,MAAM;EACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;EACA,WAAW,CACT;GACE,MAAM;GACN,MAAM;GACN,WAAW;EACb,CACF;CACF,CACF;AACF;;;;;;;;;;ACjFA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC1LA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACzLA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AClJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACpHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACzLA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3MA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC/IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7KA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3MA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5LA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3JA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxMA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AChKA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACtJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACtJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACrKA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxMA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU;IACR,SAAS,CACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb,CACF;IACA,KAAK,CACH;KACE,WAAW;KACX,WAAW;KACX,iBAAiB;IACnB,CACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACrHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9GA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC/IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3JA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC9JA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACvJA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;GACA,cAAc,EACZ,iBAAiB,MACnB;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC5IA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnIA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACnIA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC3HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,GACA;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7HA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,KAAK,EACH,SAAS;IACP;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;IACA;KACE,MAAM;KACN,MAAM;KACN,WAAW;IACb;GACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;ACxHA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ,EACN,IAAI,mCACN;CACA,oBAAoB;CACpB,SAAS,CACP;EACE,MAAM;EACN,MAAM;CACR,CACF;CACA,aAAa,CACX;EACE,MAAM;EACN,UAAU,EACR,KAAK,CACH;GACE,WAAW;GACX,iBAAiB;EACnB,CACF,EACF;EACA,WAAW;GACT;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;GACA;IACE,MAAM;IACN,MAAM;IACN,KAAK;GACP;EACF;CACF,CACF;AACF;;;;;;;;;;ACzCA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;AC7FA,mBAAe;CACb,QAAQ;EACN,IAAI;EACJ,KAAK;CACP;CACA,iBAAiB;CACjB,oBAAoB;CACpB,SAAS;EACP;GACE,MAAM;GACN,aAAa;IACX,UAAU,EACR,SAAS,CACP,EACE,KAAK,WACP,CACF,EACF;IACA,WAAW;KACT;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;KACA;MACE,MAAM;MACN,MAAM;MACN,KAAK;KACP;IACF;GACF;EACF;EACA;GACE,MAAM;GACN,UAAU;EACZ;EACA;GACE,MAAM;GACN,MAAM;EACR;EACA;GACE,MAAM;GACN,MAAM;EACR;CACF;CACA,aAAa;EACX;GACE,MAAM;GACN,KAAK,EACH,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,KAAK,CACH;IACE,WAAW;IACX,WAAW;IACX,iBAAiB;GACnB,CACF,EACF;EACF;EACA;GACE,MAAM;GACN,UAAU,EACR,SAAS,CACP,EACE,KAAK,aACP,CACF,EACF;GACA,WAAW,CACT;IACE,MAAM;IACN,MAAM;IACN,WAAW;GACb,CACF;EACF;CACF;AACF;;;;;;;;;;;;;;;;ACoVA,MAAa,OAAO,cAA6EA,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,UAAU,cAAmFC,eAAQ;AAClH,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAA6EC,YAAK;AACtG,MAAa,OAAO,cAAwDC,YAAK;AACjF,MAAa,OAAO,cAAwDC,YAAK;AACjF,MAAa,OAAO,cAAwDC,YAAK;AACjF,MAAa,OAAO,cAA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"}
|