(function (_, kotlin_kotlin, kotlin_io_github_pdvrieze_xmlutil_core, kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core) {
  'use strict';
  //region block: imports
  var imul = Math.imul;
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.q;
  var CompactFragment_init_$Create$ = kotlin_io_github_pdvrieze_xmlutil_core.$_$.l;
  var siblingsToFragment = kotlin_io_github_pdvrieze_xmlutil_core.$_$.b2;
  var isInterface = kotlin_kotlin.$_$.lf;
  var PrimitiveClasses_getInstance = kotlin_kotlin.$_$.x5;
  var arrayOf = kotlin_kotlin.$_$.en;
  var createKType = kotlin_kotlin.$_$.b;
  var serializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.y3;
  var THROW_CCE = kotlin_kotlin.$_$.pm;
  var KSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.o3;
  var Unit_getInstance = kotlin_kotlin.$_$.i6;
  var Companion_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.s;
  var ListSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.y;
  var buildClassSerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.v1;
  var protoOf = kotlin_kotlin.$_$.bg;
  var ICompactFragment = kotlin_io_github_pdvrieze_xmlutil_core.$_$.f1;
  var CompactFragment = kotlin_io_github_pdvrieze_xmlutil_core.$_$.e1;
  var toList = kotlin_kotlin.$_$.nc;
  var objectMeta = kotlin_kotlin.$_$.ag;
  var setMetadataFor = kotlin_kotlin.$_$.cg;
  var VOID = kotlin_kotlin.$_$.g;
  var Companion_getInstance_0 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.r;
  var SerializationException_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.e;
  var single = kotlin_kotlin.$_$.zb;
  var CONTEXTUAL_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l;
  var buildSerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.w1;
  var StringCompanionObject_getInstance = kotlin_kotlin.$_$.v5;
  var serializer_0 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.c1;
  var MapSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.z;
  var SEALED_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.i;
  var NodeConsts_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.r;
  var to = kotlin_kotlin.$_$.ho;
  var mapOf = kotlin_kotlin.$_$.ua;
  var iterator = kotlin_io_github_pdvrieze_xmlutil_core.$_$.c1;
  var asSequence = kotlin_kotlin.$_$.ph;
  var toList_0 = kotlin_kotlin.$_$.fi;
  var createDocument = kotlin_io_github_pdvrieze_xmlutil_core.$_$.d1;
  var DomWriter = kotlin_io_github_pdvrieze_xmlutil_core.$_$.g1;
  var writeElement = kotlin_io_github_pdvrieze_xmlutil_core.$_$.j2;
  var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.m2;
  var charSequenceLength = kotlin_kotlin.$_$.ke;
  var iterator_0 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.b1;
  var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.a1;
  var QName_init_$Create$ = kotlin_io_github_pdvrieze_xmlutil_core.$_$.o;
  var objectCreate = kotlin_kotlin.$_$.zf;
  var Decoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.j2;
  var classMeta = kotlin_kotlin.$_$.me;
  var smartStartTag = kotlin_io_github_pdvrieze_xmlutil_core.$_$.d2;
  var decodeSerializableElement$default = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.b;
  var decodeNullableSerializableElement$default = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.a;
  var CompositeDecoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f2;
  var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.g2;
  var DeserializationStrategy = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.n3;
  var ensureNotNull = kotlin_kotlin.$_$.kn;
  var THROW_IAE = kotlin_kotlin.$_$.qm;
  var enumEntries = kotlin_kotlin.$_$.ae;
  var Enum = kotlin_kotlin.$_$.bm;
  var hashCode = kotlin_kotlin.$_$.af;
  var equals = kotlin_kotlin.$_$.qe;
  var Annotation = kotlin_kotlin.$_$.rl;
  var EmptySerializersModule = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g3;
  var HashMap_init_$Create$ = kotlin_kotlin.$_$.t;
  var HashSet_init_$Create$ = kotlin_kotlin.$_$.x;
  var Map = kotlin_kotlin.$_$.d7;
  var asSequence_0 = kotlin_kotlin.$_$.u7;
  var filterNot = kotlin_kotlin.$_$.rh;
  var map = kotlin_kotlin.$_$.yh;
  var sortedWith = kotlin_kotlin.$_$.ei;
  var XMLConstants_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.u;
  var NamespaceImpl = kotlin_io_github_pdvrieze_xmlutil_core.$_$.m1;
  var StringFormat = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.t3;
  var interfaceMeta = kotlin_kotlin.$_$.cf;
  var getBooleanHashCode = kotlin_kotlin.$_$.ue;
  var Comparator = kotlin_kotlin.$_$.yl;
  var contains = kotlin_kotlin.$_$.d8;
  var compareValues = kotlin_kotlin.$_$.zc;
  var plus = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l3;
  var StringWriter = kotlin_io_github_pdvrieze_xmlutil_core.$_$.w;
  var XmlStreaming_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.v;
  var collectionSizeOrDefault = kotlin_kotlin.$_$.b8;
  var mapCapacity = kotlin_kotlin.$_$.ta;
  var coerceAtLeast = kotlin_kotlin.$_$.tg;
  var LinkedHashMap_init_$Create$_0 = kotlin_kotlin.$_$.z;
  var skipPreamble = kotlin_io_github_pdvrieze_xmlutil_core.$_$.c2;
  var isEquivalent = kotlin_io_github_pdvrieze_xmlutil_core.$_$.z1;
  var UnsupportedOperationException_init_$Create$ = kotlin_kotlin.$_$.f3;
  var QName = kotlin_io_github_pdvrieze_xmlutil_core.$_$.j1;
  var QName_init_$Create$_0 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.p;
  var Collection = kotlin_kotlin.$_$.r6;
  var SerializersModuleBuilder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h3;
  var getKClass = kotlin_kotlin.$_$.e;
  var QNameSerializer_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.t;
  var MAP_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.p;
  var LIST_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.o;
  var toBoolean = kotlin_kotlin.$_$.qk;
  var toByte = kotlin_kotlin.$_$.rk;
  var toUByte = kotlin_kotlin.$_$.el;
  var _UByte___get_data__impl__jof9qr = kotlin_kotlin.$_$.c4;
  var toShort = kotlin_kotlin.$_$.bl;
  var toUShort = kotlin_kotlin.$_$.il;
  var _UShort___get_data__impl__g0245 = kotlin_kotlin.$_$.f5;
  var toInt = kotlin_kotlin.$_$.xk;
  var toUInt = kotlin_kotlin.$_$.fl;
  var _UInt___get_data__impl__f0vqqw = kotlin_kotlin.$_$.m4;
  var toLong = kotlin_kotlin.$_$.al;
  var toULong = kotlin_kotlin.$_$.hl;
  var _ULong___get_data__impl__fggpzb = kotlin_kotlin.$_$.v4;
  var toDouble = kotlin_kotlin.$_$.uk;
  var single_0 = kotlin_kotlin.$_$.xj;
  var decodeSerializableValue = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.i2;
  var decodeNullableSerializableValue = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h2;
  var EventType_END_DOCUMENT_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.c;
  var EventType_END_ELEMENT_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.d;
  var EventType_START_ELEMENT_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.f;
  var readSimpleElement = kotlin_io_github_pdvrieze_xmlutil_core.$_$.a2;
  var allConsecutiveTextContent = kotlin_io_github_pdvrieze_xmlutil_core.$_$.u1;
  var allText = kotlin_io_github_pdvrieze_xmlutil_core.$_$.v1;
  var noWhenBranchMatchedException = kotlin_kotlin.$_$.tn;
  var AssertionError_init_$Create$ = kotlin_kotlin.$_$.p1;
  var toString = kotlin_kotlin.$_$.gg;
  var XmlException_init_$Create$ = kotlin_io_github_pdvrieze_xmlutil_core.$_$.q;
  var ChunkedDecoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.c2;
  var PrimitiveKind = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l1;
  var LIST = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.t1;
  var MAP = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.u1;
  var decodeSequentially = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.e2;
  var booleanArray = kotlin_kotlin.$_$.fe;
  var ArrayDeque_init_$Create$ = kotlin_kotlin.$_$.o;
  var CompactFragment_init_$Create$_0 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.n;
  var CompactFragment_init_$Create$_1 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.m;
  var AbstractCollectionSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.p2;
  var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.p;
  var plus_0 = kotlin_kotlin.$_$.ib;
  var singleOrNull = kotlin_kotlin.$_$.yb;
  var get_indices = kotlin_kotlin.$_$.aa;
  var checkIndexOverflow = kotlin_kotlin.$_$.z7;
  var IntCompanionObject_getInstance = kotlin_kotlin.$_$.t5;
  var emptyList = kotlin_kotlin.$_$.f9;
  var STRING_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k;
  var elementContentToFragment = kotlin_io_github_pdvrieze_xmlutil_core.$_$.w1;
  var EndElementEvent = kotlin_io_github_pdvrieze_xmlutil_core.$_$.l1;
  var decodeCollectionSize = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.d2;
  var xmlCollapseWhitespace = kotlin_io_github_pdvrieze_xmlutil_core.$_$.k2;
  var split = kotlin_kotlin.$_$.ak;
  var until = kotlin_kotlin.$_$.gh;
  var elementToFragment = kotlin_io_github_pdvrieze_xmlutil_core.$_$.x1;
  var assert = kotlin_io_github_pdvrieze_xmlutil_core.$_$.x;
  var assert_0 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.y;
  var joinToString = kotlin_kotlin.$_$.ea;
  var EventType_CDSECT_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.b;
  var EventType_IGNORABLE_WHITESPACE_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.e;
  var EventType_TEXT_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.g;
  var XmlBufferedReader = kotlin_io_github_pdvrieze_xmlutil_core.$_$.k1;
  var toCName = kotlin_io_github_pdvrieze_xmlutil_core.$_$.f2;
  var SerializationStrategy = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.s3;
  var last = kotlin_kotlin.$_$.oj;
  var isWhitespace = kotlin_kotlin.$_$.kj;
  var first = kotlin_kotlin.$_$.wi;
  var throwUninitializedPropertyAccessException = kotlin_kotlin.$_$.bo;
  var _UByte___init__impl__g9hnc4 = kotlin_kotlin.$_$.b4;
  var UByte__toString_impl_v72jg = kotlin_kotlin.$_$.d4;
  var _UShort___init__impl__jigrne = kotlin_kotlin.$_$.e5;
  var UShort__toString_impl_edaoee = kotlin_kotlin.$_$.g5;
  var _UInt___init__impl__l7qpdl = kotlin_kotlin.$_$.k4;
  var UInt__toString_impl_dbgl21 = kotlin_kotlin.$_$.n4;
  var _ULong___init__impl__c78o9k = kotlin_kotlin.$_$.u4;
  var ULong__toString_impl_f9au7k = kotlin_kotlin.$_$.x4;
  var toString_0 = kotlin_kotlin.$_$.w3;
  var beginCollection = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k2;
  var encodeNullableSerializableValue = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.m2;
  var Encoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.o2;
  var StringBuilder_init_$Create$ = kotlin_kotlin.$_$.n1;
  var encodeSerializableValue = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.n2;
  var encodeNotNullMark = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l2;
  var smartStartTag_0 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.e2;
  var endTag = kotlin_io_github_pdvrieze_xmlutil_core.$_$.y1;
  var sortedWith_0 = kotlin_kotlin.$_$.dc;
  var CompositeEncoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g2;
  var Iterator = kotlin_kotlin.$_$.x6;
  var firstOrNull = kotlin_kotlin.$_$.th;
  var charSequenceGet = kotlin_kotlin.$_$.je;
  var isDigit = kotlin_kotlin.$_$.dj;
  var numberRangeToNumber = kotlin_kotlin.$_$.tf;
  var asSequence_1 = kotlin_kotlin.$_$.v7;
  var NoSuchElementException_init_$Create$ = kotlin_kotlin.$_$.t2;
  var writeAttribute = kotlin_io_github_pdvrieze_xmlutil_core.$_$.i2;
  var first_0 = kotlin_kotlin.$_$.t9;
  var PolymorphicKind = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k1;
  var ENUM_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.m;
  var OBJECT_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.q;
  var CLASS_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.n;
  var _Char___init__impl__6a9atx = kotlin_kotlin.$_$.o3;
  var substringAfterLast = kotlin_kotlin.$_$.dk;
  var toQname = kotlin_io_github_pdvrieze_xmlutil_core.$_$.h2;
  var startsWith = kotlin_kotlin.$_$.ck;
  var lastIndexOf = kotlin_kotlin.$_$.mj;
  var indexOf = kotlin_kotlin.$_$.aj;
  var startsWith_0 = kotlin_kotlin.$_$.bk;
  var XmlDeclMode_None_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.j;
  var XmlDeclMode_Minimal_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.i;
  var repeat = kotlin_kotlin.$_$.tj;
  var XmlVersion_XML11_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.a;
  var countIndentedLength = kotlin_io_github_pdvrieze_xmlutil_core.$_$.a1;
  var XmlDeclMode_Auto_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.h;
  var captureStack = kotlin_kotlin.$_$.ge;
  var SerializationException = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.r3;
  var SerializationException_init_$Init$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f;
  var getStringHashCode = kotlin_kotlin.$_$.ze;
  var listOf = kotlin_kotlin.$_$.ra;
  var OPEN_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h;
  var get_nullable = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.b1;
  var fillArrayVal = kotlin_kotlin.$_$.se;
  var Pair = kotlin_kotlin.$_$.mm;
  var plus_1 = kotlin_kotlin.$_$.bi;
  var filter = kotlin_kotlin.$_$.sh;
  var Sequence = kotlin_kotlin.$_$.oh;
  var flatMap = kotlin_kotlin.$_$.vh;
  var contentEquals = kotlin_kotlin.$_$.h8;
  var charArrayOf = kotlin_kotlin.$_$.he;
  var split_0 = kotlin_kotlin.$_$.zj;
  var polymorphicDefault = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.j3;
  var SerializersModuleCollector = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k3;
  var Char = kotlin_kotlin.$_$.vl;
  var Long = kotlin_kotlin.$_$.hm;
  var listOfNotNull = kotlin_kotlin.$_$.qa;
  var getPrefixes = kotlin_io_github_pdvrieze_xmlutil_core.$_$.h1;
  var NamespaceContextImpl = kotlin_io_github_pdvrieze_xmlutil_core.$_$.i1;
  var startDocument$default = kotlin_io_github_pdvrieze_xmlutil_core.$_$.k;
  var set_indent = kotlin_io_github_pdvrieze_xmlutil_core.$_$.o1;
  var get_indent = kotlin_io_github_pdvrieze_xmlutil_core.$_$.n1;
  var setPrefix = kotlin_io_github_pdvrieze_xmlutil_core.$_$.s1;
  var namespaceAttr = kotlin_io_github_pdvrieze_xmlutil_core.$_$.p1;
  var namespaceAttr_0 = kotlin_io_github_pdvrieze_xmlutil_core.$_$.q1;
  var processingInstruction = kotlin_io_github_pdvrieze_xmlutil_core.$_$.r1;
  var XmlWriter = kotlin_io_github_pdvrieze_xmlutil_core.$_$.t1;
  var isCharSequence = kotlin_kotlin.$_$.hf;
  var trim = kotlin_kotlin.$_$.ml;
  var lazy = kotlin_kotlin.$_$.sn;
  var IndexOutOfBoundsException_init_$Create$ = kotlin_kotlin.$_$.q2;
  var getKClassFromExpression = kotlin_kotlin.$_$.d;
  var LinkedHashSet_init_$Create$ = kotlin_kotlin.$_$.d1;
  var getPolymorphicDescriptors = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.z1;
  var get_capturedKClass = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.x1;
  var toNamespace = kotlin_io_github_pdvrieze_xmlutil_core.$_$.g2;
  var Companion_getInstance_1 = kotlin_kotlin.$_$.e6;
  var serializer_1 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g1;
  var Companion_getInstance_2 = kotlin_kotlin.$_$.h6;
  var serializer_2 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.d1;
  var Companion_getInstance_3 = kotlin_kotlin.$_$.f6;
  var serializer_3 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.e1;
  var Companion_getInstance_4 = kotlin_kotlin.$_$.g6;
  var serializer_4 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h1;
  var requireNoNulls = kotlin_kotlin.$_$.rb;
  var toList_1 = kotlin_kotlin.$_$.oc;
  var get_indices_0 = kotlin_kotlin.$_$.ca;
  var substringBeforeLast = kotlin_kotlin.$_$.ik;
  var dropLast = kotlin_kotlin.$_$.qi;
  var endsWith = kotlin_kotlin.$_$.si;
  var KProperty1 = kotlin_kotlin.$_$.lh;
  var getPropertyCallableRef = kotlin_kotlin.$_$.ye;
  var toMutableList = kotlin_kotlin.$_$.rc;
  var compareTo = kotlin_kotlin.$_$.ne;
  var get_EmptySerializersModuleLegacyJs = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f3;
  var serializerOrNull = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.x3;
  var get_name = kotlin_io_github_pdvrieze_xmlutil_core.$_$.z;
  var replace = kotlin_kotlin.$_$.vj;
  //endregion
  //region block: pre-declaration
  setMetadataFor(CompactFragmentSerializer, 'CompactFragmentSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(NodeSerializer, 'NodeSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(ElementSerializer, 'ElementSerializer', objectMeta, VOID, [KSerializer]);
  setMetadataFor(DocumentDecoder, 'DocumentDecoder', classMeta, VOID, [Decoder]);
  setMetadataFor(DocumentCompositeDecoder, 'DocumentCompositeDecoder', classMeta, VOID, [CompositeDecoder]);
  setMetadataFor(WrappedDeserializationStrategy, 'WrappedDeserializationStrategy', classMeta, VOID, [DeserializationStrategy]);
  setMetadataFor(InputKind, 'InputKind', classMeta, Enum);
  setMetadataFor(InputKind$Element, 'Element', classMeta, InputKind);
  setMetadataFor(InputKind$Attribute, 'Attribute', classMeta, InputKind);
  setMetadataFor(InputKind$Text, 'Text', classMeta, InputKind);
  setMetadataFor(OutputKind, 'OutputKind', classMeta, Enum);
  setMetadataFor(OutputKind$Attribute, 'Attribute', classMeta, OutputKind);
  setMetadataFor(OutputKind$Text, 'Text', classMeta, OutputKind);
  setMetadataFor(PolyBaseInfo, 'PolyBaseInfo', classMeta);
  setMetadataFor(WillBePrivate, 'WillBePrivate', classMeta, VOID, [Annotation]);
  setMetadataFor(Companion, 'Companion', objectMeta, VOID, [StringFormat]);
  function delegateFormat() {
    return new XML(this.get_config_c0698r_k$(), this.get_serializersModule_piitvg_k$());
  }
  setMetadataFor(XmlCodecConfig, 'XmlCodecConfig', interfaceMeta);
  function ensureNamespace(qName) {
    return this.ensureNamespace_z1zvq1_k$(qName, false);
  }
  function get_currentTypeName() {
    return null;
  }
  setMetadataFor(XmlOutput, 'XmlOutput', interfaceMeta, VOID, [XmlCodecConfig]);
  function getNamespaceURI(prefix) {
    return this.get_input_it4gip_k$().get_namespaceContext_n7n1ib_k$().getNamespaceURI_859c43_k$(prefix);
  }
  setMetadataFor(XmlInput, 'XmlInput', interfaceMeta, VOID, [XmlCodecConfig]);
  setMetadataFor(ParsedData, 'ParsedData', classMeta);
  setMetadataFor(sam$kotlin_Comparator$0, 'sam$kotlin_Comparator$0', classMeta, VOID, [Comparator]);
  setMetadataFor(XML, 'XML', classMeta, VOID, [StringFormat]);
  setMetadataFor(TagIdHolder, 'TagIdHolder', interfaceMeta);
  setMetadataFor(XmlDecoderBase$SerialValueDecoder$decodeInline$1, VOID, classMeta, VOID, [TagIdHolder]);
  setMetadataFor(XmlCodec, 'XmlCodec', classMeta);
  setMetadataFor(DecodeCommons, 'DecodeCommons', classMeta, XmlCodec, [XmlCodec, XmlInput, Decoder]);
  setMetadataFor(XmlDecoder, 'XmlDecoder', classMeta, DecodeCommons, [DecodeCommons, Decoder, XmlInput, ChunkedDecoder]);
  setMetadataFor(StringDecoder, 'StringDecoder', classMeta, DecodeCommons, [Decoder, XmlInput, DecodeCommons]);
  setMetadataFor(SerialValueDecoder, 'SerialValueDecoder', classMeta, XmlDecoder);
  setMetadataFor(NullDecoder, 'NullDecoder', classMeta, XmlDecoder, [XmlDecoder, CompositeDecoder]);
  setMetadataFor(XmlTagCodec, 'XmlTagCodec', classMeta);
  setMetadataFor(TagDecoderBase, 'TagDecoderBase', classMeta, XmlTagCodec, [XmlTagCodec, CompositeDecoder, XmlInput, TagIdHolder]);
  setMetadataFor(TagDecoder, 'TagDecoder', classMeta, TagDecoderBase);
  setMetadataFor(AttributeMapDecoder, 'AttributeMapDecoder', classMeta, TagDecoderBase, [TagDecoderBase, Decoder]);
  setMetadataFor(AttributeListDecoder, 'AttributeListDecoder', classMeta, TagDecoderBase);
  setMetadataFor(AnonymousListDecoder, 'AnonymousListDecoder', classMeta, TagDecoderBase);
  setMetadataFor(NamedListDecoder, 'NamedListDecoder', classMeta, TagDecoderBase);
  setMetadataFor(MapDecoderBase, 'MapDecoderBase', classMeta, TagDecoderBase);
  setMetadataFor(AnonymousMapDecoder, 'AnonymousMapDecoder', classMeta, MapDecoderBase);
  setMetadataFor(NamedMapDecoder, 'NamedMapDecoder', classMeta, MapDecoderBase);
  setMetadataFor(PolymorphicDecoder, 'PolymorphicDecoder', classMeta, TagDecoderBase);
  setMetadataFor(XmlCodecBase, 'XmlCodecBase', classMeta);
  setMetadataFor(XmlDecoderBase, 'XmlDecoderBase', classMeta, XmlCodecBase);
  setMetadataFor(PolyInfo, 'PolyInfo', classMeta);
  setMetadataFor(sam$kotlin_Comparator$0_0, 'sam$kotlin_Comparator$0', classMeta, VOID, [Comparator]);
  setMetadataFor(XmlEncoder, 'XmlEncoder', classMeta, XmlCodec, [XmlCodec, Encoder, XmlOutput]);
  setMetadataFor(NSAttrXmlEncoder, 'NSAttrXmlEncoder', classMeta, XmlEncoder);
  setMetadataFor(PrimitiveEncoder, 'PrimitiveEncoder', classMeta, VOID, [Encoder, XmlOutput]);
  setMetadataFor(InlineEncoder, 'InlineEncoder', classMeta, XmlEncoder);
  setMetadataFor(TagEncoder, 'TagEncoder', classMeta, XmlTagCodec, [XmlTagCodec, CompositeEncoder, XmlOutput]);
  setMetadataFor(InlineTagEncoder, 'InlineTagEncoder', classMeta, TagEncoder);
  setMetadataFor(PolymorphicEncoder, 'PolymorphicEncoder', classMeta, TagEncoder, [TagEncoder, XmlOutput]);
  setMetadataFor(AttributeMapEncoder, 'AttributeMapEncoder', classMeta, TagEncoder);
  setMetadataFor(AttributeListEncoder, 'AttributeListEncoder', classMeta, TagEncoder);
  setMetadataFor(ListEncoder, 'ListEncoder', classMeta, TagEncoder, [TagEncoder, XmlOutput]);
  setMetadataFor(MapEncoder, 'MapEncoder', classMeta, TagEncoder);
  setMetadataFor(XmlEncoderBase, 'XmlEncoderBase', classMeta, XmlCodecBase);
  setMetadataFor(Companion_0, 'Companion', objectMeta);
  setMetadataFor(UnknownChildHandler, 'UnknownChildHandler', interfaceMeta);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_0, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_1, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_2, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_3, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_4, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(Builder, 'Builder', classMeta, VOID, VOID, Builder);
  setMetadataFor(Companion_1, 'Companion', objectMeta);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_5, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_6, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(XmlConfig, 'XmlConfig', classMeta);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_7, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(XmlSerialException, 'XmlSerialException', classMeta, SerializationException);
  setMetadataFor(UnknownXmlFieldException, 'UnknownXmlFieldException', classMeta, XmlSerialException);
  setMetadataFor(XmlParsingException, 'XmlParsingException', classMeta, XmlSerialException);
  setMetadataFor(DeclaredNameInfo, 'DeclaredNameInfo', classMeta);
  setMetadataFor(ActualNameInfo, 'ActualNameInfo', classMeta);
  setMetadataFor(XmlEncodeDefault, 'XmlEncodeDefault', classMeta, Enum);
  setMetadataFor(Companion_2, 'Companion', objectMeta);
  function get_defaultPrimitiveOutputKind() {
    return OutputKind_Attribute_getInstance();
  }
  function get_defaultObjectOutputKind() {
    return OutputKind_Element_getInstance();
  }
  function get_isStrictNames() {
    return false;
  }
  function get_verifyElementOrder() {
    return false;
  }
  function defaultOutputKind(serialKind) {
    var tmp;
    if (equals(serialKind, ENUM_getInstance()) ? true : equals(serialKind, OBJECT_getInstance())) {
      tmp = this.get_defaultObjectOutputKind_gtu6d0_k$();
    } else {
      if (serialKind instanceof PrimitiveKind) {
        tmp = this.get_defaultPrimitiveOutputKind_xh7b3w_k$();
      } else {
        if (equals(serialKind, OPEN_getInstance())) {
          tmp = OutputKind_Element_getInstance();
        } else {
          tmp = OutputKind_Element_getInstance();
        }
      }
    }
    return tmp;
  }
  function invalidOutputKind(message) {
    return this.ignoredSerialInfo_xjiak6_k$(message);
  }
  function effectiveName$default(serializerParent, tagParent, outputKind, useName, $super) {
    useName = useName === VOID ? tagParent.get_elementUseNameInfo_t1hkkt_k$() : useName;
    return $super === VOID ? this.effectiveName_j2bo7w_k$(serializerParent, tagParent, outputKind, useName) : $super.effectiveName_j2bo7w_k$.call(this, serializerParent, tagParent, outputKind, useName);
  }
  function serialTypeNameToQName(typeNameInfo, parentNamespace) {
    return this.serialNameToQName_rvd6v8_k$(typeNameInfo.serialName_1, parentNamespace);
  }
  function serialUseNameToQName(useNameInfo, parentNamespace) {
    return this.serialNameToQName_rvd6v8_k$(useNameInfo.serialName_1, parentNamespace);
  }
  function effectiveOutputKind(serializerParent, tagParent, canBeAttribute) {
    var base = this.effectiveOutputKind_22mmoq_k$(serializerParent, tagParent);
    if (!canBeAttribute ? base.equals(OutputKind_Attribute_getInstance()) : false) {
      return this.handleAttributeOrderConflict_l5t2w2_k$(serializerParent, tagParent, base);
    }
    return base;
  }
  function overrideSerializerOrNull(serializerParent, tagParent) {
    return null;
  }
  function handleUnknownContentRecovering(input, inputKind, descriptor, name, candidates) {
    this.handleUnknownContent_qgq844_k$(input, inputKind, name, candidates);
    return emptyList();
  }
  function onElementRepeated(parentDescriptor, childIndex) {
  }
  function handleAttributeOrderConflict(serializerParent, tagParent, outputKind) {
    throw SerializationException_init_$Create$('Node ' + serializerParent.get_elementUseNameInfo_t1hkkt_k$().serialName_1 + ' wants to be an attribute but cannot due to ordering constraints');
  }
  function initialChildReorderMap(parentDescriptor) {
    return null;
  }
  function updateReorderMap(original, children) {
    return original;
  }
  function enumEncoding(enumDescriptor, index) {
    return enumDescriptor.getElementName_u4sqmf_k$(index);
  }
  function preserveSpace(serializerParent, tagParent) {
    return true;
  }
  function mapKeyName(serializerParent) {
    return DeclaredNameInfo_init_$Create$('key');
  }
  function mapValueName(serializerParent, isListEluded) {
    return DeclaredNameInfo_init_$Create$('value');
  }
  function mapEntryName(serializerParent, isListEluded) {
    return QName_init_$Create$_0(serializerParent.get_namespace_t826ya_k$().get_namespaceURI_g6nmhy_k$(), 'entry');
  }
  function isMapValueCollapsed(mapParent, valueDescriptor) {
    return false;
  }
  function elementNamespaceDecls(serializerParent) {
    return emptyList();
  }
  function attributeListDelimiters(serializerParent, tagParent) {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [' ', '\n', '\t', '\r'];
  }
  setMetadataFor(XmlSerializationPolicy, 'XmlSerializationPolicy', interfaceMeta);
  setMetadataFor(Builder_0, 'Builder', classMeta);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_8, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_9, 'sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0', classMeta, VOID, [UnknownChildHandler]);
  setMetadataFor(DefaultXmlSerializationPolicy, 'DefaultXmlSerializationPolicy', classMeta, VOID, [XmlSerializationPolicy]);
  setMetadataFor(XmlSerialName, 'XmlSerialName', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlPolyChildren, 'XmlPolyChildren', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlElement, 'XmlElement', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlId, 'XmlId', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlValue, 'XmlValue', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlChildrenName, 'XmlChildrenName', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlCData, 'XmlCData', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlDefault, 'XmlDefault', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlOtherAttributes, 'XmlOtherAttributes', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlBefore, 'XmlBefore', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlAfter, 'XmlAfter', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlIgnoreWhitespace, 'XmlIgnoreWhitespace', classMeta, VOID, [Annotation]);
  setMetadataFor(XmlNamespaceDeclSpec, 'XmlNamespaceDeclSpec', classMeta, VOID, [Annotation]);
  setMetadataFor(ChildCollector, 'ChildCollector', classMeta, VOID, [SerializersModuleCollector], ChildCollector);
  setMetadataFor(DummyDecoder, 'DummyDecoder', classMeta, VOID, [Decoder]);
  setMetadataFor(NamespaceCollectingXmlWriter$namespaceContext$1, VOID, classMeta, VOID, [NamespaceContextImpl]);
  setMetadataFor(NamespaceCollectingXmlWriter, 'NamespaceCollectingXmlWriter', classMeta, VOID, [XmlWriter]);
  setMetadataFor(PrefixWrappingPolicy, 'PrefixWrappingPolicy', classMeta, VOID, [XmlSerializationPolicy]);
  setMetadataFor(XmlQNameSerializer, 'XmlQNameSerializer', objectMeta, VOID, [KSerializer]);
  function get_isNullable() {
    return this.get_serialDescriptor_vvwkac_k$().get_isNullable_67sy7o_k$();
  }
  function get_kind() {
    return this.get_serialDescriptor_vvwkac_k$().get_kind_wop7ml_k$();
  }
  function get_isCData() {
    return false;
  }
  function isElementOptional(index) {
    return this.get_serialDescriptor_vvwkac_k$().isElementOptional_heqq56_k$(index);
  }
  setMetadataFor(SafeXmlDescriptor, 'SafeXmlDescriptor', interfaceMeta);
  setMetadataFor(XmlDescriptor, 'XmlDescriptor', classMeta, VOID, [SafeXmlDescriptor]);
  setMetadataFor(XmlRootDescriptor, 'XmlRootDescriptor', classMeta, XmlDescriptor);
  setMetadataFor(Companion_3, 'Companion', objectMeta);
  setMetadataFor(XmlValueDescriptor, 'XmlValueDescriptor', classMeta, XmlDescriptor);
  setMetadataFor(XmlPolymorphicDescriptor, 'XmlPolymorphicDescriptor', classMeta, XmlValueDescriptor);
  function copy$default(useNameInfo, useOutputKind, overriddenSerializer, $super) {
    useNameInfo = useNameInfo === VOID ? this.get_elementUseNameInfo_t1hkkt_k$() : useNameInfo;
    useOutputKind = useOutputKind === VOID ? this.get_elementUseOutputKind_aak75j_k$() : useOutputKind;
    overriddenSerializer = overriddenSerializer === VOID ? this.get_overriddenSerializer_2zhhv3_k$() : overriddenSerializer;
    return $super === VOID ? this.copy_nllc1_k$(useNameInfo, useOutputKind, overriddenSerializer) : $super.copy_nllc1_k$.call(this, useNameInfo, useOutputKind, overriddenSerializer);
  }
  function maybeOverrideSerializer(overriddenSerializer) {
    return overriddenSerializer == null ? this : this.copy$default_aw1ypn_k$(VOID, VOID, overriddenSerializer);
  }
  setMetadataFor(SafeParentInfo, 'SafeParentInfo', interfaceMeta);
  setMetadataFor(DetachedParent, 'DetachedParent', classMeta, VOID, [SafeParentInfo]);
  setMetadataFor(XmlListLikeDescriptor, 'XmlListLikeDescriptor', classMeta, XmlDescriptor);
  setMetadataFor(XmlListDescriptor, 'XmlListDescriptor', classMeta, XmlListLikeDescriptor);
  setMetadataFor(XmlPrimitiveDescriptor, 'XmlPrimitiveDescriptor', classMeta, XmlValueDescriptor);
  setMetadataFor(XmlAttributeMapDescriptor, 'XmlAttributeMapDescriptor', classMeta, XmlValueDescriptor);
  setMetadataFor(XmlMapDescriptor, 'XmlMapDescriptor', classMeta, XmlListLikeDescriptor);
  setMetadataFor(Companion_4, 'Companion', objectMeta);
  setMetadataFor(XmlInlineDescriptor, 'XmlInlineDescriptor', classMeta, XmlValueDescriptor);
  setMetadataFor(XmlCompositeDescriptor, 'XmlCompositeDescriptor', classMeta, XmlValueDescriptor);
  setMetadataFor(UNSET, 'UNSET', objectMeta);
  setMetadataFor(PolymorphicMode, 'PolymorphicMode', classMeta);
  setMetadataFor(TRANSPARENT, 'TRANSPARENT', objectMeta, PolymorphicMode);
  setMetadataFor(TAG, 'TAG', objectMeta, PolymorphicMode);
  setMetadataFor(ATTR, 'ATTR', classMeta, PolymorphicMode);
  setMetadataFor(ParentInfo, 'ParentInfo', classMeta, VOID, [SafeParentInfo]);
  setMetadataFor(InjectedParentTag, 'InjectedParentTag', classMeta, VOID, [SafeParentInfo]);
  setMetadataFor(Companion_5, 'Companion', objectMeta);
  setMetadataFor(XmlOrderConstraint, 'XmlOrderConstraint', classMeta);
  setMetadataFor(OrderWildcard, 'OrderWildcard', classMeta, Enum);
  setMetadataFor(XmlOrderNode, 'XmlOrderNode', classMeta);
  setMetadataFor(XmlTypeDescriptor, 'XmlTypeDescriptor', classMeta);
  //endregion
  function _get_namespacesSerializer__vlg71b($this) {
    return $this.namespacesSerializer_1;
  }
  function readCompactFragmentContent($this, input) {
    var tmp;
    if (isInterface(input, XmlInput)) {
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.CompactFragmentSerializer.readCompactFragmentContent.<anonymous>' call
      var $this$run = input.get_input_it4gip_k$();
      $this$run.next_20eer_k$();
      tmp = siblingsToFragment($this$run);
    } else {
      // Inline function 'kotlin.collections.mutableListOf' call
      var namespaces = ArrayList_init_$Create$();
      var content = '';
      var index = input.decodeElementIndex_bstkhp_k$($this.descriptor_1);
      while (index >= 0) {
        var tmp0_subject = index;
        if (tmp0_subject === 0)
          namespaces = input.decodeSerializableElement$default_j0zaoi_k$($this.descriptor_1, index, $this.namespacesSerializer_1);
        else if (tmp0_subject === 1)
          content = input.decodeStringElement_3oenpg_k$($this.descriptor_1, index);
        index = input.decodeElementIndex_bstkhp_k$($this.descriptor_1);
      }
      tmp = CompactFragment_init_$Create$(namespaces, content);
    }
    return tmp;
  }
  function CompactFragmentSerializer$descriptor$lambda($this$buildClassSerialDescriptor) {
    $this$buildClassSerialDescriptor.element$default_ey7ac9_k$('namespaces', CompactFragmentSerializer_getInstance().namespacesSerializer_1.get_descriptor_wjt6a0_k$());
    // Inline function 'kotlinx.serialization.descriptors.serialDescriptor' call
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(PrimitiveClasses_getInstance().get_stringClass_bik2gy_k$(), arrayOf([]), false));
    var tmp$ret$2 = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).get_descriptor_wjt6a0_k$();
    $this$buildClassSerialDescriptor.element$default_ey7ac9_k$('content', tmp$ret$2);
    return Unit_getInstance();
  }
  function CompactFragmentSerializer() {
    CompactFragmentSerializer_instance = this;
    this.namespacesSerializer_1 = ListSerializer(Companion_getInstance());
    var tmp = this;
    tmp.descriptor_1 = buildClassSerialDescriptor('compactFragment', [], CompactFragmentSerializer$descriptor$lambda);
  }
  protoOf(CompactFragmentSerializer).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(CompactFragmentSerializer).deserialize_sy6x50_k$ = function (decoder) {
    // Inline function 'kotlinx.serialization.encoding.decodeStructure' call
    var descriptor = this.descriptor_1;
    var composite = decoder.beginStructure_yljocp_k$(descriptor);
    // Inline function 'nl.adaptivity.xmlutil.serialization.CompactFragmentSerializer.deserialize.<anonymous>' call
    var result = readCompactFragmentContent(CompactFragmentSerializer_getInstance(), composite);
    composite.endStructure_1xqz0n_k$(descriptor);
    return result;
  };
  protoOf(CompactFragmentSerializer).serialize_z9oqkb_k$ = function (encoder, value) {
    this.serialize_yzqohp_k$(encoder, isInterface(value, ICompactFragment) ? value : THROW_CCE());
  };
  protoOf(CompactFragmentSerializer).serialize_5ase3y_k$ = function (encoder, value) {
    return this.serialize_z9oqkb_k$(encoder, value instanceof CompactFragment ? value : THROW_CCE());
  };
  protoOf(CompactFragmentSerializer).serialize_yzqohp_k$ = function (output, value) {
    // Inline function 'kotlinx.serialization.encoding.encodeStructure' call
    var descriptor = this.descriptor_1;
    var composite = output.beginStructure_yljocp_k$(descriptor);
    // Inline function 'nl.adaptivity.xmlutil.serialization.CompactFragmentSerializer.serialize.<anonymous>' call
    CompactFragmentSerializer_getInstance().writeCompactFragmentContent_oj5bm5_k$(composite, value);
    composite.endStructure_1xqz0n_k$(descriptor);
  };
  protoOf(CompactFragmentSerializer).writeCompactFragmentContent_oj5bm5_k$ = function (encoder, value) {
    var xmlOutput = isInterface(encoder, XmlOutput) ? encoder : null;
    if (!(xmlOutput == null)) {
      var writer = xmlOutput.get_target_juba8q_k$();
      var tmp0_iterator = value.get_namespaces_hgkq2n_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var namespace = tmp0_iterator.next_20eer_k$();
        if (writer.getPrefix_r4en0f_k$(namespace.get_namespaceURI_g6nmhy_k$()) == null) {
          writer.namespaceAttr_b6cim8_k$(namespace);
        }
      }
      value.serialize_cilu77_k$(writer);
    } else {
      encoder.encodeSerializableElement_isqxcl_k$(this.descriptor_1, 0, this.namespacesSerializer_1, toList(value.get_namespaces_hgkq2n_k$()));
      encoder.encodeStringElement_1n5wu2_k$(this.descriptor_1, 1, value.get_contentString_6m1e0v_k$());
    }
  };
  var CompactFragmentSerializer_instance;
  function CompactFragmentSerializer_getInstance() {
    if (CompactFragmentSerializer_instance == null)
      new CompactFragmentSerializer();
    return CompactFragmentSerializer_instance;
  }
  function _get_attrSerializer__h4s8vs($this) {
    return $this.attrSerializer_1;
  }
  function deserialize($this, decoder) {
    var result = {_v: null};
    // Inline function 'kotlinx.serialization.encoding.decodeStructure' call
    var descriptor = $this.descriptor_1;
    var composite = decoder.beginStructure_yljocp_k$(descriptor);
    var type = null;
    var nextValue = composite.decodeElementIndex_bstkhp_k$(NodeSerializer_getInstance().descriptor_1);
    while (!(nextValue === Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$())) {
      var tmp0_subject = nextValue;
      if (tmp0_subject === 0)
        type = composite.decodeStringElement_3oenpg_k$(NodeSerializer_getInstance().descriptor_1, 0);
      else if (tmp0_subject === 1) {
        switch (type) {
          case null:
            throw SerializationException_init_$Create$('Missing type');
          case 'element':
            result._v = composite.decodeSerializableElement$default_j0zaoi_k$(NodeSerializer_getInstance().descriptor_1, 1, ElementSerializer_getInstance());
            break;
          case 'attr':
            var map = composite.decodeSerializableElement$default_j0zaoi_k$(NodeSerializer_getInstance().descriptor_1, 1, NodeSerializer_getInstance().attrSerializer_1);
            if (!(map.get_size_woubt6_k$() === 1))
              throw SerializationException_init_$Create$('Only a single attribute pair expected');
            // Inline function 'kotlin.apply' call

            var this_0 = decoder.document_1.createAttribute(single(map.get_keys_wop4xp_k$()));
            // Inline function 'kotlin.contracts.contract' call

            // Inline function 'nl.adaptivity.xmlutil.serialization.NodeSerializer.deserialize.<anonymous>.<anonymous>' call

            this_0.value = single(map.get_values_ksazhn_k$());
            result._v = this_0;
            break;
          case 'text':
            result._v = decoder.document_1.createTextNode(composite.decodeStringElement_3oenpg_k$(NodeSerializer_getInstance().descriptor_1, 1));
            break;
          case 'comment':
            result._v = decoder.document_1.createComment(composite.decodeStringElement_3oenpg_k$(NodeSerializer_getInstance().descriptor_1, 1));
            break;
          default:
            throw SerializationException_init_$Create$('unsupported type: ' + type);
        }
      }
      nextValue = composite.decodeElementIndex_bstkhp_k$(NodeSerializer_getInstance().descriptor_1);
    }
    var result_0 = Unit_getInstance();
    composite.endStructure_1xqz0n_k$(descriptor);
    var tmp0_elvis_lhs = result._v;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw SerializationException_init_$Create$('Missing value');
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function NodeSerializer$ed$lambda($this$buildSerialDescriptor) {
    // Inline function 'kotlinx.serialization.descriptors.serialDescriptor' call
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(PrimitiveClasses_getInstance().get_stringClass_bik2gy_k$(), arrayOf([]), false));
    var tmp$ret$2 = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).get_descriptor_wjt6a0_k$();
    $this$buildSerialDescriptor.element$default_ey7ac9_k$('text', tmp$ret$2);
    var tmp = CONTEXTUAL_getInstance();
    $this$buildSerialDescriptor.element$default_ey7ac9_k$('element', buildSerialDescriptor('element', tmp, [], NodeSerializer$ed$lambda$lambda));
    return Unit_getInstance();
  }
  function NodeSerializer$ed$lambda$lambda($this$buildSerialDescriptor) {
    return Unit_getInstance();
  }
  function NodeSerializer$descriptor$lambda($this$buildSerialDescriptor) {
    // Inline function 'kotlinx.serialization.descriptors.serialDescriptor' call
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(PrimitiveClasses_getInstance().get_stringClass_bik2gy_k$(), arrayOf([]), false));
    var tmp$ret$2 = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).get_descriptor_wjt6a0_k$();
    $this$buildSerialDescriptor.element$default_ey7ac9_k$('type', tmp$ret$2);
    $this$buildSerialDescriptor.element$default_ey7ac9_k$('value', NodeSerializer_getInstance().ed_1);
    return Unit_getInstance();
  }
  function NodeSerializer() {
    NodeSerializer_instance = this;
    this.attrSerializer_1 = MapSerializer(serializer_0(StringCompanionObject_getInstance()), serializer_0(StringCompanionObject_getInstance()));
    var tmp = this;
    var tmp_0 = CONTEXTUAL_getInstance();
    tmp.ed_1 = buildSerialDescriptor('org.w3c.dom.Node', tmp_0, [], NodeSerializer$ed$lambda);
    var tmp_1 = this;
    var tmp_2 = SEALED_getInstance();
    tmp_1.descriptor_1 = buildSerialDescriptor('node', tmp_2, [], NodeSerializer$descriptor$lambda);
  }
  protoOf(NodeSerializer).get_ed_knto0o_k$ = function () {
    return this.ed_1;
  };
  protoOf(NodeSerializer).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(NodeSerializer).deserialize_sy6x50_k$ = function (decoder) {
    var tmp;
    if (decoder instanceof DocumentDecoder) {
      tmp = deserialize(this, decoder);
    } else {
      tmp = deserialize(this, DocumentDecoder_init_$Create$(decoder));
    }
    return tmp;
  };
  protoOf(NodeSerializer).serialize_6f67fl_k$ = function (encoder, value) {
    // Inline function 'kotlinx.serialization.encoding.encodeStructure' call
    var descriptor = this.descriptor_1;
    var composite = encoder.beginStructure_yljocp_k$(descriptor);
    // Inline function 'nl.adaptivity.xmlutil.serialization.NodeSerializer.serialize.<anonymous>' call
    var tmp0_subject = value.nodeType;
    if (tmp0_subject === NodeConsts_getInstance().get_DOCUMENT_NODE_5zyovx_k$() ? true : tmp0_subject === NodeConsts_getInstance().get_DOCUMENT_FRAGMENT_NODE_tz3fyi_k$()) {
      var type = value.nodeType === NodeConsts_getInstance().get_DOCUMENT_FRAGMENT_NODE_tz3fyi_k$() ? 'fragment' : 'document';
      composite.encodeStringElement_1n5wu2_k$(NodeSerializer_getInstance().descriptor_1, 0, type);
      var children = toList_0(asSequence(iterator(value.childNodes)));
      composite.encodeSerializableElement_isqxcl_k$(NodeSerializer_getInstance().descriptor_1, 1, ListSerializer(NodeSerializer_getInstance()), children);
    } else if (tmp0_subject === NodeConsts_getInstance().get_ELEMENT_NODE_xvg2j2_k$()) {
      composite.encodeStringElement_1n5wu2_k$(NodeSerializer_getInstance().descriptor_1, 0, 'element');
      var tmp = NodeSerializer_getInstance().descriptor_1;
      var tmp_0 = ElementSerializer_getInstance();
      composite.encodeSerializableElement_isqxcl_k$(tmp, 1, tmp_0, !(value == null) ? value : THROW_CCE());
    } else if (tmp0_subject === NodeConsts_getInstance().get_ATTRIBUTE_NODE_ynn1g2_k$()) {
      composite.encodeStringElement_1n5wu2_k$(NodeSerializer_getInstance().descriptor_1, 0, 'attr');
      var tmp_1 = NodeSerializer_getInstance().descriptor_1;
      var tmp_2 = NodeSerializer_getInstance().attrSerializer_1;
      composite.encodeSerializableElement_isqxcl_k$(tmp_1, 1, tmp_2, mapOf(to((!(value == null) ? value : THROW_CCE()).name, value.value)));
    } else if (tmp0_subject === NodeConsts_getInstance().get_TEXT_NODE_x3rt91_k$() ? true : tmp0_subject === NodeConsts_getInstance().get_CDATA_SECTION_NODE_v6gjhl_k$()) {
      composite.encodeStringElement_1n5wu2_k$(NodeSerializer_getInstance().descriptor_1, 0, 'text');
      var tmp_3 = NodeSerializer_getInstance().descriptor_1;
      var tmp1_elvis_lhs = value.textContent;
      composite.encodeStringElement_1n5wu2_k$(tmp_3, 1, tmp1_elvis_lhs == null ? '' : tmp1_elvis_lhs);
    } else if (tmp0_subject === NodeConsts_getInstance().get_COMMENT_NODE_eipp6d_k$()) {
      composite.encodeStringElement_1n5wu2_k$(NodeSerializer_getInstance().descriptor_1, 0, 'comment');
      var tmp_4 = NodeSerializer_getInstance().descriptor_1;
      var tmp2_elvis_lhs = value.textContent;
      composite.encodeStringElement_1n5wu2_k$(tmp_4, 1, tmp2_elvis_lhs == null ? '' : tmp2_elvis_lhs);
    } else if (tmp0_subject === NodeConsts_getInstance().get_PROCESSING_INSTRUCTION_NODE_34ol86_k$())
      throw SerializationException_init_$Create$('Processing instructions can not be serialized');
    else
      throw SerializationException_init_$Create$('Cannot serialize: ' + value);
    composite.endStructure_1xqz0n_k$(descriptor);
  };
  protoOf(NodeSerializer).serialize_5ase3y_k$ = function (encoder, value) {
    return this.serialize_6f67fl_k$(encoder, (!(value == null) ? !(value == null) : false) ? value : THROW_CCE());
  };
  var NodeSerializer_instance;
  function NodeSerializer_getInstance() {
    if (NodeSerializer_instance == null)
      new NodeSerializer();
    return NodeSerializer_instance;
  }
  function _get_attrSerializer__h4s8vs_0($this) {
    return $this.attrSerializer_1;
  }
  function deserializeInput($this, decoder) {
    var document = createDocument(decoder.get_input_it4gip_k$().get_name_woqyms_k$());
    var fragment = document.createDocumentFragment();
    var out = new DomWriter(fragment);
    writeElement(out, null, decoder.get_input_it4gip_k$());
    var e = fragment.firstChild;
    while (!(e == null) ? !(e.nodeType === NodeConsts_getInstance().get_ELEMENT_NODE_xvg2j2_k$()) : false) {
      e = e.nextSibling;
    }
    var tmp0_elvis_lhs = (e == null ? true : !(e == null)) ? e : THROW_CCE();
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw SerializationException_init_$Create$('Expected element, but did not find it');
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function deserialize_0($this, decoder) {
    // Inline function 'kotlinx.serialization.encoding.decodeStructure' call
    var descriptor = $this.descriptor_1;
    var composite = decoder.beginStructure_yljocp_k$(descriptor);
    // Inline function 'nl.adaptivity.xmlutil.serialization.ElementSerializer.deserialize.<anonymous>' call
    var contentSerializer = ListSerializer(NodeSerializer_getInstance());
    var idx = composite.decodeElementIndex_bstkhp_k$(ElementSerializer_getInstance().descriptor_1);
    var nameSpace = null;
    var localName = null;
    var attributes = null;
    var content = null;
    while (!(idx === Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$())) {
      var tmp0_subject = idx;
      if (tmp0_subject === 0)
        nameSpace = composite.decodeStringElement_3oenpg_k$(ElementSerializer_getInstance().descriptor_1, 0);
      else if (tmp0_subject === 1)
        localName = composite.decodeStringElement_3oenpg_k$(ElementSerializer_getInstance().descriptor_1, 1);
      else if (tmp0_subject === 2)
        attributes = ElementSerializer_getInstance().attrSerializer_1.deserialize_sy6x50_k$(decoder);
      else if (tmp0_subject === 3)
        content = contentSerializer.deserialize_sy6x50_k$(decoder);
      else if (tmp0_subject === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$())
        throw SerializationException_init_$Create$('Found unexpected child at index: ' + idx);
      else
        throw IllegalStateException_init_$Create$('Received an unexpected decoder value: ' + idx);
      idx = composite.decodeElementIndex_bstkhp_k$(ElementSerializer_getInstance().descriptor_1);
    }
    if (localName == null)
      throw SerializationException_init_$Create$('Missing localName');
    if (attributes == null)
      throw SerializationException_init_$Create$('Missing attributes');
    if (content == null)
      throw SerializationException_init_$Create$('Missing content');
    var doc = decoder.document_1;
    // Inline function 'kotlin.apply' call
    var tmp;
    // Inline function 'kotlin.text.isNullOrEmpty' call
    var this_0 = nameSpace;
    // Inline function 'kotlin.contracts.contract' call
    if (this_0 == null ? true : charSequenceLength(this_0) === 0) {
      tmp = doc.createElement(localName);
    } else {
      tmp = doc.createElementNS(nameSpace, localName);
    }
    var this_1 = tmp;
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.ElementSerializer.deserialize.<anonymous>.<anonymous>' call
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = attributes.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var tmp1_loop_parameter = tmp0_iterator.next_20eer_k$();
      // Inline function 'kotlin.collections.component1' call
      var name = tmp1_loop_parameter.get_key_18j28a_k$();
      // Inline function 'kotlin.collections.component2' call
      var value = tmp1_loop_parameter.get_value_j01efc_k$();
      this_1.setAttribute(name, value);
    }
    var tmp2_iterator = content.iterator_jk1svi_k$();
    while (tmp2_iterator.hasNext_bitz1p_k$()) {
      var node = tmp2_iterator.next_20eer_k$();
      this_1.appendChild(doc.adoptNode(node));
    }
    var result = this_1;
    composite.endStructure_1xqz0n_k$(descriptor);
    return result;
  }
  function ElementSerializer$descriptor$lambda($this$buildClassSerialDescriptor) {
    // Inline function 'kotlinx.serialization.descriptors.serialDescriptor' call
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_0 = serializer(createKType(PrimitiveClasses_getInstance().get_stringClass_bik2gy_k$(), arrayOf([]), false));
    var tmp$ret$2 = (isInterface(this_0, KSerializer) ? this_0 : THROW_CCE()).get_descriptor_wjt6a0_k$();
    $this$buildClassSerialDescriptor.element$default_ey7ac9_k$('namespace', tmp$ret$2, VOID, true);
    // Inline function 'kotlinx.serialization.descriptors.serialDescriptor' call
    // Inline function 'kotlinx.serialization.serializer' call
    // Inline function 'kotlinx.serialization.internal.cast' call
    var this_1 = serializer(createKType(PrimitiveClasses_getInstance().get_stringClass_bik2gy_k$(), arrayOf([]), false));
    var tmp$ret$5 = (isInterface(this_1, KSerializer) ? this_1 : THROW_CCE()).get_descriptor_wjt6a0_k$();
    $this$buildClassSerialDescriptor.element$default_ey7ac9_k$('localname', tmp$ret$5);
    $this$buildClassSerialDescriptor.element$default_ey7ac9_k$('attributes', ElementSerializer_getInstance().attrSerializer_1.get_descriptor_wjt6a0_k$());
    $this$buildClassSerialDescriptor.element$default_ey7ac9_k$('content', ListSerializer(NodeSerializer_getInstance()).get_descriptor_wjt6a0_k$());
    return Unit_getInstance();
  }
  function ElementSerializer() {
    ElementSerializer_instance = this;
    this.attrSerializer_1 = MapSerializer(serializer_0(StringCompanionObject_getInstance()), serializer_0(StringCompanionObject_getInstance()));
    var tmp = this;
    tmp.descriptor_1 = buildClassSerialDescriptor('element', [], ElementSerializer$descriptor$lambda);
  }
  protoOf(ElementSerializer).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(ElementSerializer).deserialize_sy6x50_k$ = function (decoder) {
    var tmp;
    if (isInterface(decoder, XmlInput)) {
      tmp = deserializeInput(this, decoder);
    } else {
      if (decoder instanceof DocumentDecoder) {
        tmp = deserialize_0(this, decoder);
      } else {
        tmp = deserialize_0(this, DocumentDecoder_init_$Create$(decoder));
      }
    }
    return tmp;
  };
  protoOf(ElementSerializer).serialize_8q10xg_k$ = function (encoder, value) {
    if (isInterface(encoder, XmlOutput)) {
      serialize(encoder.get_target_juba8q_k$(), value);
    } else {
      // Inline function 'kotlinx.serialization.encoding.encodeStructure' call
      var descriptor = this.descriptor_1;
      var composite = encoder.beginStructure_yljocp_k$(descriptor);
      // Inline function 'nl.adaptivity.xmlutil.serialization.ElementSerializer.serialize.<anonymous>' call
      var ln = value.localName;
      if (ln == null) {
        composite.encodeStringElement_1n5wu2_k$(ElementSerializer_getInstance().descriptor_1, 1, value.tagName);
      } else {
        var namespaceURI = value.namespaceURI;
        // Inline function 'kotlin.text.isNullOrEmpty' call
        // Inline function 'kotlin.contracts.contract' call
        if (!(namespaceURI == null ? true : charSequenceLength(namespaceURI) === 0)) {
          composite.encodeStringElement_1n5wu2_k$(ElementSerializer_getInstance().descriptor_1, 0, namespaceURI);
        }
        composite.encodeStringElement_1n5wu2_k$(ElementSerializer_getInstance().descriptor_1, 1, value.localName);
      }
      var attrIterator = iterator_0(value.attributes);
      // Inline function 'kotlin.sequences.associate' call
      // Inline function 'kotlin.sequences.associateTo' call
      var this_0 = asSequence(attrIterator);
      var destination = LinkedHashMap_init_$Create$();
      var tmp0_iterator = this_0.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'kotlin.collections.plusAssign' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.ElementSerializer.serialize.<anonymous>.<anonymous>' call
        var pair = to(element.nodeName, element.value);
        destination.put_4fpzoq_k$(pair.get_first_irdx8n_k$(), pair.get_second_jf7fjx_k$());
      }
      var m = destination;
      composite.encodeSerializableElement_isqxcl_k$(ElementSerializer_getInstance().descriptor_1, 2, ElementSerializer_getInstance().attrSerializer_1, m);
      var n = toList_0(asSequence(iterator(value.childNodes)));
      composite.encodeSerializableElement_isqxcl_k$(ElementSerializer_getInstance().descriptor_1, 3, ListSerializer(NodeSerializer_getInstance()), n);
      composite.endStructure_1xqz0n_k$(descriptor);
    }
  };
  protoOf(ElementSerializer).serialize_5ase3y_k$ = function (encoder, value) {
    return this.serialize_8q10xg_k$(encoder, (!(value == null) ? !(value == null) : false) ? value : THROW_CCE());
  };
  var ElementSerializer_instance;
  function ElementSerializer_getInstance() {
    if (ElementSerializer_instance == null)
      new ElementSerializer();
    return ElementSerializer_instance;
  }
  function _get_delegate__idh0py($this) {
    return $this.delegate_1;
  }
  function DocumentDecoder_init_$Init$(delegate, $this) {
    // Inline function 'kotlin.apply' call
    var this_0 = createDocument(QName_init_$Create$('dummy'));
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.DocumentDecoder.<init>.<anonymous>' call
    var tmp0_safe_receiver = this_0.documentElement;
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      this_0.removeChild(tmp0_safe_receiver);
    }
    DocumentDecoder.call($this, delegate, this_0);
    return $this;
  }
  function DocumentDecoder_init_$Create$(delegate) {
    return DocumentDecoder_init_$Init$(delegate, objectCreate(protoOf(DocumentDecoder)));
  }
  function DocumentDecoder(delegate, document) {
    this.delegate_1 = delegate;
    this.document_1 = document;
  }
  protoOf(DocumentDecoder).get_document_hjw2l8_k$ = function () {
    return this.document_1;
  };
  protoOf(DocumentDecoder).get_serializersModule_piitvg_k$ = function () {
    return this.delegate_1.get_serializersModule_piitvg_k$();
  };
  protoOf(DocumentDecoder).decodeBoolean_m0aca_k$ = function () {
    return this.delegate_1.decodeBoolean_m0aca_k$();
  };
  protoOf(DocumentDecoder).decodeByte_jzz7je_k$ = function () {
    return this.delegate_1.decodeByte_jzz7je_k$();
  };
  protoOf(DocumentDecoder).decodeChar_dcmcfa_k$ = function () {
    return this.delegate_1.decodeChar_dcmcfa_k$();
  };
  protoOf(DocumentDecoder).decodeDouble_ur8l0f_k$ = function () {
    return this.delegate_1.decodeDouble_ur8l0f_k$();
  };
  protoOf(DocumentDecoder).decodeEnum_slg6lu_k$ = function (enumDescriptor) {
    return this.delegate_1.decodeEnum_slg6lu_k$(enumDescriptor);
  };
  protoOf(DocumentDecoder).decodeFloat_jcnrwu_k$ = function () {
    return this.delegate_1.decodeFloat_jcnrwu_k$();
  };
  protoOf(DocumentDecoder).decodeInline_ux3vza_k$ = function (descriptor) {
    return this.delegate_1.decodeInline_ux3vza_k$(descriptor);
  };
  protoOf(DocumentDecoder).decodeInt_8iq8f5_k$ = function () {
    return this.delegate_1.decodeInt_8iq8f5_k$();
  };
  protoOf(DocumentDecoder).decodeLong_jzt186_k$ = function () {
    return this.delegate_1.decodeLong_jzt186_k$();
  };
  protoOf(DocumentDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    return this.delegate_1.decodeNotNullMark_us4ba1_k$();
  };
  protoOf(DocumentDecoder).decodeNull_jzrmuj_k$ = function () {
    return this.delegate_1.decodeNull_jzrmuj_k$();
  };
  protoOf(DocumentDecoder).decodeNullableSerializableValue_sc8iki_k$ = function (deserializer) {
    return this.delegate_1.decodeNullableSerializableValue_sc8iki_k$(deserializer);
  };
  protoOf(DocumentDecoder).decodeSerializableValue_xpnpad_k$ = function (deserializer) {
    return this.delegate_1.decodeSerializableValue_xpnpad_k$(deserializer);
  };
  protoOf(DocumentDecoder).decodeShort_jjqk32_k$ = function () {
    return this.delegate_1.decodeShort_jjqk32_k$();
  };
  protoOf(DocumentDecoder).decodeString_x3hxsx_k$ = function () {
    return this.delegate_1.decodeString_x3hxsx_k$();
  };
  protoOf(DocumentDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    return new DocumentCompositeDecoder(this.delegate_1.beginStructure_yljocp_k$(descriptor), this.document_1);
  };
  function serialize(encoder, value) {
    // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
    var nsUri = value.namespaceURI;
    var tmp0_elvis_lhs = value.localName;
    var localName = tmp0_elvis_lhs == null ? value.tagName : tmp0_elvis_lhs;
    var prefix = value.prefix;
    smartStartTag(encoder, nsUri, localName, prefix);
    // Inline function 'nl.adaptivity.xmlutil.serialization.serialize.<anonymous>' call
    var tmp0_iterator = iterator_0(value.attributes);
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var n = tmp0_iterator.next_20eer_k$();
      serialize_0(encoder, n);
    }
    var tmp1_iterator = iterator(value.childNodes);
    while (tmp1_iterator.hasNext_bitz1p_k$()) {
      var child = tmp1_iterator.next_20eer_k$();
      serialize_1(encoder, child);
    }
    encoder.endTag_yzukbv_k$(nsUri, localName, prefix);
  }
  function _get_delegate__idh0py_0($this) {
    return $this.delegate_1;
  }
  function DocumentCompositeDecoder(delegate, document) {
    this.delegate_1 = delegate;
    this.document_1 = document;
  }
  protoOf(DocumentCompositeDecoder).get_document_hjw2l8_k$ = function () {
    return this.document_1;
  };
  protoOf(DocumentCompositeDecoder).get_serializersModule_piitvg_k$ = function () {
    return this.delegate_1.get_serializersModule_piitvg_k$();
  };
  protoOf(DocumentCompositeDecoder).decodeBooleanElement_vuyhtj_k$ = function (descriptor, index) {
    return this.delegate_1.decodeBooleanElement_vuyhtj_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeByteElement_c1pisz_k$ = function (descriptor, index) {
    return this.delegate_1.decodeByteElement_c1pisz_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeCharElement_frbao3_k$ = function (descriptor, index) {
    return this.delegate_1.decodeCharElement_frbao3_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return this.delegate_1.decodeCollectionSize_l3mlkk_k$(descriptor);
  };
  protoOf(DocumentCompositeDecoder).decodeDoubleElement_isei84_k$ = function (descriptor, index) {
    return this.delegate_1.decodeDoubleElement_isei84_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    return this.delegate_1.decodeElementIndex_bstkhp_k$(descriptor);
  };
  protoOf(DocumentCompositeDecoder).decodeFloatElement_p2q55h_k$ = function (descriptor, index) {
    return this.delegate_1.decodeFloatElement_p2q55h_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeInlineElement_s8883o_k$ = function (descriptor, index) {
    return this.delegate_1.decodeInlineElement_s8883o_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeIntElement_941u6a_k$ = function (descriptor, index) {
    return this.delegate_1.decodeIntElement_941u6a_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeLongElement_994anb_k$ = function (descriptor, index) {
    return this.delegate_1.decodeLongElement_994anb_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeSequentially_xlblqy_k$ = function () {
    return this.delegate_1.decodeSequentially_xlblqy_k$();
  };
  protoOf(DocumentCompositeDecoder).decodeShortElement_pzg12t_k$ = function (descriptor, index) {
    return this.delegate_1.decodeShortElement_pzg12t_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).decodeStringElement_3oenpg_k$ = function (descriptor, index) {
    return this.delegate_1.decodeStringElement_3oenpg_k$(descriptor, index);
  };
  protoOf(DocumentCompositeDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
    this.delegate_1.endStructure_1xqz0n_k$(descriptor);
  };
  protoOf(DocumentCompositeDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    return this.delegate_1.decodeSerializableElement_uahnnv_k$(descriptor, index, wrap(deserializer, this.document_1), previousValue);
  };
  protoOf(DocumentCompositeDecoder).decodeNullableSerializableElement_k2y6ab_k$ = function (descriptor, index, deserializer, previousValue) {
    return this.delegate_1.decodeNullableSerializableElement_k2y6ab_k$(descriptor, index, wrap(deserializer, this.document_1), previousValue);
  };
  function serialize_0(encoder, value) {
    var tmp = value.namespaceURI;
    var tmp0_elvis_lhs = value.localName;
    encoder.attribute_ruzjv8_k$(tmp, tmp0_elvis_lhs == null ? value.name : tmp0_elvis_lhs, value.prefix, value.value);
  }
  function serialize_1(encoder, value) {
    var tmp0_subject = value.nodeType;
    var tmp;
    if (tmp0_subject === NodeConsts_getInstance().get_ELEMENT_NODE_xvg2j2_k$()) {
      serialize(encoder, !(value == null) ? value : THROW_CCE());
      tmp = Unit_getInstance();
    } else if (tmp0_subject === NodeConsts_getInstance().get_ATTRIBUTE_NODE_ynn1g2_k$()) {
      serialize_0(encoder, !(value == null) ? value : THROW_CCE());
      tmp = Unit_getInstance();
    } else if (tmp0_subject === NodeConsts_getInstance().get_CDATA_SECTION_NODE_v6gjhl_k$()) {
      serialize_2(encoder, !(value == null) ? value : THROW_CCE());
      tmp = Unit_getInstance();
    } else if (tmp0_subject === NodeConsts_getInstance().get_TEXT_NODE_x3rt91_k$()) {
      serialize_3(encoder, !(value == null) ? value : THROW_CCE());
      tmp = Unit_getInstance();
    } else if (tmp0_subject === NodeConsts_getInstance().get_COMMENT_NODE_eipp6d_k$()) {
      serialize_4(encoder, !(value == null) ? value : THROW_CCE());
      tmp = Unit_getInstance();
    } else if (tmp0_subject === NodeConsts_getInstance().get_PROCESSING_INSTRUCTION_NODE_34ol86_k$()) {
      serialize_5(encoder, !(value == null) ? value : THROW_CCE());
      tmp = Unit_getInstance();
    } else {
      throw IllegalArgumentException_init_$Create$('Can not serialize node: ' + value);
    }
    return tmp;
  }
  function WrappedDeserializationStrategy(delegate, document) {
    this.delegate_1 = delegate;
    this.document_1 = document;
  }
  protoOf(WrappedDeserializationStrategy).get_delegate_i94tki_k$ = function () {
    return this.delegate_1;
  };
  protoOf(WrappedDeserializationStrategy).get_document_hjw2l8_k$ = function () {
    return this.document_1;
  };
  protoOf(WrappedDeserializationStrategy).get_descriptor_wjt6a0_k$ = function () {
    return this.delegate_1.get_descriptor_wjt6a0_k$();
  };
  protoOf(WrappedDeserializationStrategy).deserialize_sy6x50_k$ = function (decoder) {
    return this.delegate_1.deserialize_sy6x50_k$(new DocumentDecoder(decoder, this.document_1));
  };
  function wrap(_this__u8e3s4, document) {
    return new WrappedDeserializationStrategy(_this__u8e3s4, document);
  }
  function serialize_2(encoder, value) {
    encoder.cdsect_yhnzeu_k$(ensureNotNull(value.textContent));
  }
  function serialize_3(encoder, value) {
    encoder.text_x72pul_k$(ensureNotNull(value.textContent));
  }
  function serialize_4(encoder, value) {
    encoder.comment_dbctn9_k$(ensureNotNull(value.textContent));
  }
  function serialize_5(encoder, value) {
    // Inline function 'nl.adaptivity.xmlutil.dom.getTarget' call
    var tmp = value.target;
    var tmp0_elvis_lhs = value.textContent;
    encoder.processingInstruction_2btz8x_k$(tmp + ' ' + (tmp0_elvis_lhs == null ? '' : tmp0_elvis_lhs));
  }
  function InputKind$Element() {
    InputKind.call(this, 'Element', 0);
    InputKind_Element_instance = this;
  }
  protoOf(InputKind$Element).mapsTo_78gkyu_k$ = function (outputKind) {
    return outputKind.equals(OutputKind_Element_getInstance());
  };
  var InputKind_Element_instance;
  function InputKind$Attribute() {
    InputKind.call(this, 'Attribute', 1);
    InputKind_Attribute_instance = this;
  }
  protoOf(InputKind$Attribute).mapsTo_78gkyu_k$ = function (outputKind) {
    return outputKind.equals(OutputKind_Attribute_getInstance());
  };
  var InputKind_Attribute_instance;
  function InputKind$Text() {
    InputKind.call(this, 'Text', 2);
    InputKind_Text_instance = this;
  }
  protoOf(InputKind$Text).mapsTo_78gkyu_k$ = function (outputKind) {
    return outputKind.equals(OutputKind_Text_getInstance());
  };
  var InputKind_Text_instance;
  function values() {
    return [InputKind_Element_getInstance(), InputKind_Attribute_getInstance(), InputKind_Text_getInstance()];
  }
  function valueOf(value) {
    switch (value) {
      case 'Element':
        return InputKind_Element_getInstance();
      case 'Attribute':
        return InputKind_Attribute_getInstance();
      case 'Text':
        return InputKind_Text_getInstance();
      default:
        InputKind_initEntries();
        THROW_IAE('No enum constant value.');
        break;
    }
  }
  function get_entries() {
    if ($ENTRIES == null)
      $ENTRIES = enumEntries(values());
    return $ENTRIES;
  }
  var InputKind_entriesInitialized;
  function InputKind_initEntries() {
    if (InputKind_entriesInitialized)
      return Unit_getInstance();
    InputKind_entriesInitialized = true;
    InputKind_Element_instance = new InputKind$Element();
    InputKind_Attribute_instance = new InputKind$Attribute();
    InputKind_Text_instance = new InputKind$Text();
  }
  var $ENTRIES;
  function InputKind(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  protoOf(InputKind).mapsTo_jr2cj2_k$ = function (xmlDescriptor) {
    return this.mapsTo_78gkyu_k$(xmlDescriptor.get_outputKind_tsa18e_k$());
  };
  function InputKind_Element_getInstance() {
    InputKind_initEntries();
    return InputKind_Element_instance;
  }
  function InputKind_Attribute_getInstance() {
    InputKind_initEntries();
    return InputKind_Attribute_instance;
  }
  function InputKind_Text_getInstance() {
    InputKind_initEntries();
    return InputKind_Text_instance;
  }
  var OutputKind_Element_instance;
  function OutputKind$Attribute() {
    OutputKind.call(this, 'Attribute', 1);
    OutputKind_Attribute_instance = this;
  }
  protoOf(OutputKind$Attribute).get_isTextual_oislr4_k$ = function () {
    return true;
  };
  var OutputKind_Attribute_instance;
  function OutputKind$Text() {
    OutputKind.call(this, 'Text', 2);
    OutputKind_Text_instance = this;
  }
  protoOf(OutputKind$Text).get_isTextual_oislr4_k$ = function () {
    return true;
  };
  var OutputKind_Text_instance;
  var OutputKind_Mixed_instance;
  var OutputKind_Inline_instance;
  function values_0() {
    return [OutputKind_Element_getInstance(), OutputKind_Attribute_getInstance(), OutputKind_Text_getInstance(), OutputKind_Mixed_getInstance(), OutputKind_Inline_getInstance()];
  }
  function valueOf_0(value) {
    switch (value) {
      case 'Element':
        return OutputKind_Element_getInstance();
      case 'Attribute':
        return OutputKind_Attribute_getInstance();
      case 'Text':
        return OutputKind_Text_getInstance();
      case 'Mixed':
        return OutputKind_Mixed_getInstance();
      case 'Inline':
        return OutputKind_Inline_getInstance();
      default:
        OutputKind_initEntries();
        THROW_IAE('No enum constant value.');
        break;
    }
  }
  function get_entries_0() {
    if ($ENTRIES_0 == null)
      $ENTRIES_0 = enumEntries(values_0());
    return $ENTRIES_0;
  }
  var OutputKind_entriesInitialized;
  function OutputKind_initEntries() {
    if (OutputKind_entriesInitialized)
      return Unit_getInstance();
    OutputKind_entriesInitialized = true;
    OutputKind_Element_instance = new OutputKind('Element', 0);
    OutputKind_Attribute_instance = new OutputKind$Attribute();
    OutputKind_Text_instance = new OutputKind$Text();
    OutputKind_Mixed_instance = new OutputKind('Mixed', 3);
    OutputKind_Inline_instance = new OutputKind('Inline', 4);
  }
  var $ENTRIES_0;
  function OutputKind(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  protoOf(OutputKind).get_isTextual_oislr4_k$ = function () {
    return false;
  };
  function OutputKind_Element_getInstance() {
    OutputKind_initEntries();
    return OutputKind_Element_instance;
  }
  function OutputKind_Attribute_getInstance() {
    OutputKind_initEntries();
    return OutputKind_Attribute_instance;
  }
  function OutputKind_Text_getInstance() {
    OutputKind_initEntries();
    return OutputKind_Text_instance;
  }
  function OutputKind_Mixed_getInstance() {
    OutputKind_initEntries();
    return OutputKind_Mixed_instance;
  }
  function OutputKind_Inline_getInstance() {
    OutputKind_initEntries();
    return OutputKind_Inline_instance;
  }
  function PolyBaseInfo(tagName, descriptor) {
    this.tagName_1 = tagName;
    this.descriptor_1 = descriptor;
  }
  protoOf(PolyBaseInfo).get_tagName_ocsgis_k$ = function () {
    return this.tagName_1;
  };
  protoOf(PolyBaseInfo).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(PolyBaseInfo).get_describedName_8lk92z_k$ = function () {
    return this.descriptor_1.get_serialName_u2rqhk_k$();
  };
  protoOf(PolyBaseInfo).component1_7eebsc_k$ = function () {
    return this.tagName_1;
  };
  protoOf(PolyBaseInfo).component2_7eebsb_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(PolyBaseInfo).copy_83tosb_k$ = function (tagName, descriptor) {
    return new PolyBaseInfo(tagName, descriptor);
  };
  protoOf(PolyBaseInfo).copy$default_nrd09k_k$ = function (tagName, descriptor, $super) {
    tagName = tagName === VOID ? this.tagName_1 : tagName;
    descriptor = descriptor === VOID ? this.descriptor_1 : descriptor;
    return $super === VOID ? this.copy_83tosb_k$(tagName, descriptor) : $super.copy_83tosb_k$.call(this, tagName, descriptor);
  };
  protoOf(PolyBaseInfo).toString = function () {
    return 'PolyBaseInfo(tagName=' + this.tagName_1 + ', descriptor=' + this.descriptor_1 + ')';
  };
  protoOf(PolyBaseInfo).hashCode = function () {
    var result = this.tagName_1.hashCode();
    result = imul(result, 31) + hashCode(this.descriptor_1) | 0;
    return result;
  };
  protoOf(PolyBaseInfo).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof PolyBaseInfo))
      return false;
    var tmp0_other_with_cast = other instanceof PolyBaseInfo ? other : THROW_CCE();
    if (!this.tagName_1.equals(tmp0_other_with_cast.tagName_1))
      return false;
    if (!equals(this.descriptor_1, tmp0_other_with_cast.descriptor_1))
      return false;
    return true;
  };
  function get_defaultXmlModule() {
    _init_properties_XML_kt__j4k93v();
    return defaultXmlModule;
  }
  var defaultXmlModule;
  function WillBePrivate() {
  }
  protoOf(WillBePrivate).equals = function (other) {
    if (!(other instanceof WillBePrivate))
      return false;
    other instanceof WillBePrivate || THROW_CCE();
    return true;
  };
  protoOf(WillBePrivate).hashCode = function () {
    return 0;
  };
  protoOf(WillBePrivate).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.WillBePrivate()';
  };
  function _get_DYNAMIC_QNAME_SERIALIZERS__4mjer1($this) {
    return $this.DYNAMIC_QNAME_SERIALIZERS_1;
  }
  function XML$Companion$defaultInstance$lambda($this$$receiver) {
    return Unit_getInstance();
  }
  function XML_init_$Init$(serializersModule, configure, $this) {
    serializersModule = serializersModule === VOID ? EmptySerializersModule() : serializersModule;
    var tmp;
    if (configure === VOID) {
      tmp = XML$_init_$lambda_gk87g4;
    } else {
      tmp = configure;
    }
    configure = tmp;
    // Inline function 'kotlin.apply' call
    var this_0 = new Builder();
    // Inline function 'kotlin.contracts.contract' call
    configure(this_0);
    XML_init_$Init$_1(this_0, serializersModule, $this);
    return $this;
  }
  function XML_init_$Create$(serializersModule, configure) {
    return XML_init_$Init$(serializersModule, configure, objectCreate(protoOf(XML)));
  }
  function collectNamespaces($this, xmlDescriptor, xmlEncoderBase, serializer, value) {
    var prefixToNamespaceMap = HashMap_init_$Create$();
    var namespaceToPrefixMap = HashMap_init_$Create$();
    var pendingNamespaces = HashSet_init_$Create$();
    var seenDescriptors = HashSet_init_$Create$();
    var hasSeenDynamicQname = {_v: false};
    var polyCollector = new ChildCollector(null);
    xmlEncoderBase.get_serializersModule_piitvg_k$().dumpTo_vt5sm4_k$(polyCollector);
    collectNamespaces$collect_0(hasSeenDynamicQname, seenDescriptors, namespaceToPrefixMap, prefixToNamespaceMap, pendingNamespaces, xmlDescriptor);
    var tmp0_iterator = polyCollector.get_children_4cwbp4_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var childSerializer = tmp0_iterator.next_20eer_k$();
      collectNamespaces$collect_0(hasSeenDynamicQname, seenDescriptors, namespaceToPrefixMap, prefixToNamespaceMap, pendingNamespaces, $this.xmlDescriptor$default_aq39mc_k$(childSerializer));
    }
    if (hasSeenDynamicQname._v) {
      var collector = new NamespaceCollectingXmlWriter(prefixToNamespaceMap, namespaceToPrefixMap, pendingNamespaces);
      var base = new XmlEncoderBase(xmlEncoderBase.get_serializersModule_piitvg_k$(), xmlEncoderBase.get_config_c0698r_k$(), collector);
      (new XmlEncoder(base, xmlDescriptor, -1)).encodeSerializableValue_3uuzip_k$(serializer, value);
    }
    var nsIdx = 1;
    var tmp1_iterator = pendingNamespaces.iterator_jk1svi_k$();
    while (tmp1_iterator.hasNext_bitz1p_k$()) {
      var namespaceUri = tmp1_iterator.next_20eer_k$();
      $l$loop: while (true) {
        // Inline function 'kotlin.collections.contains' call
        // Inline function 'kotlin.collections.containsKey' call
        var key = 'ns' + nsIdx;
        if (!(isInterface(prefixToNamespaceMap, Map) ? prefixToNamespaceMap : THROW_CCE()).containsKey_aw81wo_k$(key)) {
          break $l$loop;
        }
        nsIdx = nsIdx + 1 | 0;
      }
      var prefix = 'ns' + nsIdx;
      // Inline function 'kotlin.collections.set' call
      prefixToNamespaceMap.put_4fpzoq_k$(prefix, namespaceUri);
      // Inline function 'kotlin.collections.set' call
      namespaceToPrefixMap.put_4fpzoq_k$(namespaceUri, prefix);
    }
    // Inline function 'kotlin.sequences.sortedBy' call
    var tmp = asSequence_0(prefixToNamespaceMap);
    var tmp_0 = filterNot(tmp, XML$collectNamespaces$lambda);
    var this_0 = map(tmp_0, XML$collectNamespaces$lambda_0);
    // Inline function 'kotlin.comparisons.compareBy' call
    var tmp_1 = XML$collectNamespaces$lambda_1;
    var tmp$ret$2 = new sam$kotlin_Comparator$0(tmp_1);
    var tmp$ret$3 = sortedWith(this_0, tmp$ret$2);
    return toList_0(tmp$ret$3);
  }
  function xmlDescriptor($this, serialDescriptor, rootName) {
    var tmp;
    if (rootName == null) {
      var tmp$ret$0;
      $l$block: {
        // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
        var tmp0_iterator = serialDescriptor.get_annotations_20dirp_k$().iterator_jk1svi_k$();
        while (tmp0_iterator.hasNext_bitz1p_k$()) {
          var e = tmp0_iterator.next_20eer_k$();
          if (e instanceof XmlSerialName) {
            tmp$ret$0 = e;
            break $l$block;
          }
        }
        tmp$ret$0 = null;
      }
      var tmp0_safe_receiver = tmp$ret$0;
      tmp = tmp0_safe_receiver == null ? null : toQName(tmp0_safe_receiver, serialDescriptor.get_serialName_u2rqhk_k$(), null);
    } else {
      tmp = rootName;
    }
    var tmp2_elvis_lhs = tmp;
    var serialName = tmp2_elvis_lhs == null ? $this.config_1.get_policy_i5q4hn_k$().serialTypeNameToQName_tecixw_k$(DeclaredNameInfo_init_$Create$(serialDescriptor.get_serialName_u2rqhk_k$()), new NamespaceImpl(XMLConstants_getInstance().get_DEFAULT_NS_PREFIX_h2n08r_k$(), XMLConstants_getInstance().get_NULL_NS_URI_lh88gv_k$())) : tmp2_elvis_lhs;
    return new XmlRootDescriptor($this.config_1, $this.serializersModule_1, serialDescriptor, serialName, false);
  }
  function xmlDescriptor$default($this, serialDescriptor, rootName, $super) {
    rootName = rootName === VOID ? null : rootName;
    return xmlDescriptor($this, serialDescriptor, rootName);
  }
  function XML_init_$Init$_0(repairNamespaces, omitXmlDecl, indent, serializersModule, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    omitXmlDecl = omitXmlDecl === VOID ? true : omitXmlDecl;
    indent = indent === VOID ? 0 : indent;
    serializersModule = serializersModule === VOID ? EmptySerializersModule() : serializersModule;
    XML.call($this, XmlConfig_init_$Create$_3(repairNamespaces, omitXmlDecl, indent), serializersModule);
    return $this;
  }
  function XML_init_$Create$_0(repairNamespaces, omitXmlDecl, indent, serializersModule) {
    return XML_init_$Init$_0(repairNamespaces, omitXmlDecl, indent, serializersModule, objectCreate(protoOf(XML)));
  }
  function XML_init_$Init$_1(config, serializersModule, $this) {
    serializersModule = serializersModule === VOID ? EmptySerializersModule() : serializersModule;
    XML.call($this, XmlConfig_init_$Create$_4(config), serializersModule);
    return $this;
  }
  function XML_init_$Create$_1(config, serializersModule) {
    return XML_init_$Init$_1(config, serializersModule, objectCreate(protoOf(XML)));
  }
  function Companion() {
    Companion_instance = this;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.DYNAMIC_QNAME_SERIALIZERS_1 = [XmlQNameSerializer_getInstance(), NodeSerializer_getInstance(), ElementSerializer_getInstance(), CompactFragmentSerializer_getInstance()];
    var tmp_0 = this;
    tmp_0.defaultInstance_1 = XML_init_$Create$(VOID, XML$Companion$defaultInstance$lambda);
  }
  protoOf(Companion).get_defaultInstance_axha8d_k$ = function () {
    return this.defaultInstance_1;
  };
  protoOf(Companion).get_serializersModule_piitvg_k$ = function () {
    return this.defaultInstance_1.serializersModule_1;
  };
  protoOf(Companion).xmlDescriptor_o63ndm_k$ = function (serializer) {
    return this.defaultInstance_1.xmlDescriptor$default_hhwavs_k$(serializer);
  };
  protoOf(Companion).xmlDescriptor_brj6x1_k$ = function (deserializer) {
    return this.defaultInstance_1.xmlDescriptor$default_xamdd3_k$(deserializer);
  };
  protoOf(Companion).xmlDescriptor_n9604c_k$ = function (serializer) {
    return this.defaultInstance_1.xmlDescriptor$default_aq39mc_k$(serializer);
  };
  protoOf(Companion).encodeToString_k0apqx_k$ = function (serializer, value) {
    return this.defaultInstance_1.encodeToString_k0apqx_k$(serializer, value);
  };
  protoOf(Companion).encodeToString_ayw0ld_k$ = function (serializer, value, prefix) {
    return this.defaultInstance_1.encodeToString_hnhdf2_k$(serializer, value, prefix);
  };
  protoOf(Companion).encodeToString_yewaw2_k$ = function (serializer, value, rootName) {
    return this.defaultInstance_1.encodeToString_yewaw2_k$(serializer, value, rootName);
  };
  protoOf(Companion).encodeToWriter_xpdsk3_k$ = function (target, serializer, value, prefix) {
    this.defaultInstance_1.encodeToWriter_xpdsk3_k$(target, serializer, value, prefix);
  };
  protoOf(Companion).encodeToWriter$default_e89suj_k$ = function (target, serializer, value, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    var tmp;
    if ($super === VOID) {
      this.encodeToWriter_xpdsk3_k$(target, serializer, value, prefix);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.encodeToWriter_xpdsk3_k$.call(this, target, serializer, value, prefix);
    }
    return tmp;
  };
  protoOf(Companion).encodeToWriter_gslohz_k$ = function (target, serializer, value, rootName) {
    this.defaultInstance_1.encodeToWriter_p8k5c_k$(target, serializer, value, rootName);
  };
  protoOf(Companion).decodeFromString_jwu9sq_k$ = function (deserializer, string) {
    return this.defaultInstance_1.decodeFromString_jwu9sq_k$(deserializer, string);
  };
  protoOf(Companion).decodeFromString_z0sk86_k$ = function (deserializer, string, rootName) {
    return this.defaultInstance_1.decodeFromString_z0sk86_k$(deserializer, string, rootName);
  };
  protoOf(Companion).decodeFromReader_b4ap11_k$ = function (deserializer, reader, rootName) {
    return this.defaultInstance_1.decodeFromReader_klfvsm_k$(deserializer, reader, rootName);
  };
  protoOf(Companion).decodeFromReader$default_erjzrh_k$ = function (deserializer, reader, rootName, $super) {
    rootName = rootName === VOID ? null : rootName;
    return $super === VOID ? this.decodeFromReader_b4ap11_k$(deserializer, reader, rootName) : $super.decodeFromReader_b4ap11_k$.call(this, deserializer, reader, rootName);
  };
  protoOf(Companion).stringify_6cn6ts_k$ = function (serializer, value) {
    return this.encodeToString_k0apqx_k$(serializer, value);
  };
  protoOf(Companion).stringify_gytknq_k$ = function (serializer, obj, prefix) {
    return this.encodeToString_ayw0ld_k$(serializer, obj, prefix);
  };
  protoOf(Companion).toXml_drhwr_k$ = function (target, serializer, value, prefix) {
    this.encodeToWriter_xpdsk3_k$(target, serializer, value, prefix);
  };
  protoOf(Companion).toXml$default_4y6cab_k$ = function (target, serializer, value, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    var tmp;
    if ($super === VOID) {
      this.toXml_drhwr_k$(target, serializer, value, prefix);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.toXml_drhwr_k$.call(this, target, serializer, value, prefix);
    }
    return tmp;
  };
  protoOf(Companion).parse_d34tt0_k$ = function (deserializer, string) {
    return this.decodeFromString_jwu9sq_k$(deserializer, string);
  };
  protoOf(Companion).parse_ukc3hx_k$ = function (kClass, reader, loader) {
    return this.decodeFromReader$default_erjzrh_k$(loader, reader);
  };
  protoOf(Companion).parse_blqbwl_k$ = function (reader, kClass, loader) {
    return this.decodeFromReader$default_erjzrh_k$(loader, reader);
  };
  protoOf(Companion).parse_bnvoal_k$ = function (reader, loader) {
    return this.decodeFromReader$default_erjzrh_k$(loader, reader);
  };
  var Companion_instance;
  function Companion_getInstance_5() {
    if (Companion_instance == null)
      new Companion();
    return Companion_instance;
  }
  function XmlCodecConfig() {
  }
  function XmlOutput() {
  }
  function XmlInput() {
  }
  function ParsedData(elementIndex, value, unParsed) {
    unParsed = unParsed === VOID ? false : unParsed;
    this.elementIndex_1 = elementIndex;
    this.value_1 = value;
    this.unParsed_1 = unParsed;
  }
  protoOf(ParsedData).get_elementIndex_59wfb5_k$ = function () {
    return this.elementIndex_1;
  };
  protoOf(ParsedData).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(ParsedData).get_unParsed_m9w53n_k$ = function () {
    return this.unParsed_1;
  };
  protoOf(ParsedData).component1_7eebsc_k$ = function () {
    return this.elementIndex_1;
  };
  protoOf(ParsedData).component2_7eebsb_k$ = function () {
    return this.value_1;
  };
  protoOf(ParsedData).component3_7eebsa_k$ = function () {
    return this.unParsed_1;
  };
  protoOf(ParsedData).copy_wkw8r3_k$ = function (elementIndex, value, unParsed) {
    return new ParsedData(elementIndex, value, unParsed);
  };
  protoOf(ParsedData).copy$default_yujokm_k$ = function (elementIndex, value, unParsed, $super) {
    elementIndex = elementIndex === VOID ? this.elementIndex_1 : elementIndex;
    value = value === VOID ? this.value_1 : value;
    unParsed = unParsed === VOID ? this.unParsed_1 : unParsed;
    return $super === VOID ? this.copy_wkw8r3_k$(elementIndex, value, unParsed) : $super.copy_wkw8r3_k$.call(this, elementIndex, value, unParsed);
  };
  protoOf(ParsedData).toString = function () {
    return 'ParsedData(elementIndex=' + this.elementIndex_1 + ', value=' + this.value_1 + ', unParsed=' + this.unParsed_1 + ')';
  };
  protoOf(ParsedData).hashCode = function () {
    var result = this.elementIndex_1;
    result = imul(result, 31) + (this.value_1 == null ? 0 : hashCode(this.value_1)) | 0;
    result = imul(result, 31) + getBooleanHashCode(this.unParsed_1) | 0;
    return result;
  };
  protoOf(ParsedData).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ParsedData))
      return false;
    var tmp0_other_with_cast = other instanceof ParsedData ? other : THROW_CCE();
    if (!(this.elementIndex_1 === tmp0_other_with_cast.elementIndex_1))
      return false;
    if (!equals(this.value_1, tmp0_other_with_cast.value_1))
      return false;
    if (!(this.unParsed_1 === tmp0_other_with_cast.unParsed_1))
      return false;
    return true;
  };
  function sam$kotlin_Comparator$0(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$kotlin_Comparator$0).compare_bczr_k$ = function (a, b) {
    return this.function_1(a, b);
  };
  protoOf(sam$kotlin_Comparator$0).compare = function (a, b) {
    return this.compare_bczr_k$(a, b);
  };
  function collectNamespaces$collect(namespaceToPrefixMap, prefixToNamespaceMap, pendingNamespaces, prefix, namespaceUri) {
    // Inline function 'kotlin.collections.contains' call
    // Inline function 'kotlin.collections.containsKey' call
    if (!(isInterface(namespaceToPrefixMap, Map) ? namespaceToPrefixMap : THROW_CCE()).containsKey_aw81wo_k$(namespaceUri)) {
      // Inline function 'kotlin.collections.contains' call
      // Inline function 'kotlin.collections.containsKey' call
      if ((isInterface(prefixToNamespaceMap, Map) ? prefixToNamespaceMap : THROW_CCE()).containsKey_aw81wo_k$(prefix)) {
        // Inline function 'kotlin.text.isEmpty' call
        if (charSequenceLength(namespaceUri) === 0) {
          var tmp0_safe_receiver = prefixToNamespaceMap.get_wei43m_k$('');
          if (tmp0_safe_receiver == null)
            null;
          else {
            // Inline function 'kotlin.let' call
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.XML.collectNamespaces.collect.<anonymous>' call
            pendingNamespaces.add_utx5q5_k$(tmp0_safe_receiver);
            namespaceToPrefixMap.remove_gppy8k_k$(tmp0_safe_receiver);
          }
          // Inline function 'kotlin.collections.set' call
          prefixToNamespaceMap.put_4fpzoq_k$('', '');
          // Inline function 'kotlin.collections.set' call
          namespaceToPrefixMap.put_4fpzoq_k$('', '');
        } else {
          pendingNamespaces.add_utx5q5_k$(namespaceUri);
        }
      } else {
        if (pendingNamespaces.contains_aljjnj_k$(namespaceUri)) {
          pendingNamespaces.remove_cedx0m_k$(namespaceUri);
        }
        // Inline function 'kotlin.collections.set' call
        prefixToNamespaceMap.put_4fpzoq_k$(prefix, namespaceUri);
        // Inline function 'kotlin.collections.set' call
        namespaceToPrefixMap.put_4fpzoq_k$(namespaceUri, prefix);
      }
    }
  }
  function collectNamespaces$collect_0(hasSeenDynamicQname, seenDescriptors, namespaceToPrefixMap, prefixToNamespaceMap, pendingNamespaces, descriptor) {
    // Inline function 'nl.adaptivity.xmlutil.prefix' call
    var prefix = descriptor.get_tagName_ocsgis_k$().getPrefix_bu8bd4_k$();
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var namespaceUri = descriptor.get_tagName_ocsgis_k$().getNamespaceURI_665tvr_k$();
    var tmp;
    var tmp_0;
    if (!descriptor.get_effectiveOutputKind_uvd9nx_k$().equals(OutputKind_Attribute_getInstance())) {
      tmp_0 = true;
    } else {
      // Inline function 'kotlin.text.isNotEmpty' call
      tmp_0 = charSequenceLength(namespaceUri) > 0;
    }
    if (tmp_0) {
      tmp = true;
    } else {
      // Inline function 'kotlin.text.isNotEmpty' call
      tmp = charSequenceLength(prefix) > 0;
    }
    if (tmp) {
      collectNamespaces$collect(namespaceToPrefixMap, prefixToNamespaceMap, pendingNamespaces, prefix, namespaceUri);
    }
    // Inline function 'kotlin.collections.mutableListOf' call
    var childrenToCollect = ArrayList_init_$Create$();
    if (descriptor instanceof XmlPolymorphicDescriptor) {
      childrenToCollect.addAll_4lagoh_k$(descriptor.get_polyInfo_mizov1_k$().get_values_ksazhn_k$());
    }
    var inductionVariable = 0;
    var last = descriptor.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var elementIndex = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        childrenToCollect.add_utx5q5_k$(descriptor.getElementDescriptor_ncda77_k$(elementIndex));
      }
       while (inductionVariable < last);
    var tmp1_iterator = childrenToCollect.iterator_jk1svi_k$();
    while (tmp1_iterator.hasNext_bitz1p_k$()) {
      var childDescriptor = tmp1_iterator.next_20eer_k$();
      if (!hasSeenDynamicQname._v ? contains(Companion_getInstance_5().DYNAMIC_QNAME_SERIALIZERS_1, childDescriptor.get_overriddenSerializer_2zhhv3_k$()) : false) {
        hasSeenDynamicQname._v = true;
      }
      if (!seenDescriptors.contains_aljjnj_k$(childDescriptor)) {
        seenDescriptors.add_utx5q5_k$(childDescriptor);
        collectNamespaces$collect_0(hasSeenDynamicQname, seenDescriptors, namespaceToPrefixMap, prefixToNamespaceMap, pendingNamespaces, childDescriptor);
      }
    }
  }
  function XML$_init_$lambda_gk87g4($this$null) {
    return Unit_getInstance();
  }
  function XML$collectNamespaces$lambda(_name_for_destructuring_parameter_0__wldtmu) {
    // Inline function 'kotlin.collections.component1' call
    var prefix = _name_for_destructuring_parameter_0__wldtmu.get_key_18j28a_k$();
    // Inline function 'kotlin.collections.component2' call
    var ns = _name_for_destructuring_parameter_0__wldtmu.get_value_j01efc_k$();
    var tmp;
    // Inline function 'kotlin.text.isEmpty' call
    if (charSequenceLength(prefix) === 0) {
      // Inline function 'kotlin.text.isEmpty' call
      tmp = charSequenceLength(ns) === 0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  function XML$collectNamespaces$lambda_0(it) {
    return new NamespaceImpl(it.get_key_18j28a_k$(), it.get_value_j01efc_k$());
  }
  function XML$collectNamespaces$lambda_1(a, b) {
    // Inline function 'kotlin.comparisons.compareValuesBy' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.XML.collectNamespaces.<anonymous>' call
    var tmp = a.get_prefix_i78za3_k$();
    // Inline function 'nl.adaptivity.xmlutil.serialization.XML.collectNamespaces.<anonymous>' call
    var tmp$ret$1 = b.get_prefix_i78za3_k$();
    return compareValues(tmp, tmp$ret$1);
  }
  function XML(config, serializersModule) {
    Companion_getInstance_5();
    serializersModule = serializersModule === VOID ? EmptySerializersModule() : serializersModule;
    this.config_1 = config;
    this.serializersModule_1 = plus(serializersModule, get_defaultXmlModule());
  }
  protoOf(XML).get_config_c0698r_k$ = function () {
    return this.config_1;
  };
  protoOf(XML).get_serializersModule_piitvg_k$ = function () {
    return this.serializersModule_1;
  };
  protoOf(XML).copy_lfpvps_k$ = function (serializersModule, configure) {
    // Inline function 'kotlin.apply' call
    var this_0 = Builder_init_$Create$_0(this.config_1);
    // Inline function 'kotlin.contracts.contract' call
    configure(this_0);
    return XML_init_$Create$_1(this_0, serializersModule);
  };
  protoOf(XML).copy$default_5hl2ey_k$ = function (serializersModule, configure, $super) {
    serializersModule = serializersModule === VOID ? this.serializersModule_1 : serializersModule;
    return $super === VOID ? this.copy_lfpvps_k$(serializersModule, configure) : $super.copy_lfpvps_k$.call(this, serializersModule, configure);
  };
  protoOf(XML).encodeToString_k0apqx_k$ = function (serializer, value) {
    return this.encodeToString_hnhdf2_k$(serializer, value, null);
  };
  protoOf(XML).encodeToString_hnhdf2_k$ = function (serializer, value, prefix) {
    var stringWriter = new StringWriter();
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.core.impl.multiplatform.use' call
      var this_0 = XmlStreaming_getInstance().newWriter_3zvlr3_k$(stringWriter, this.config_1.get_repairNamespaces_s0niy6_k$(), this.config_1.get_xmlDeclMode_lc8ced_k$());
      try {
        this.encodeToWriter_xpdsk3_k$(this_0, serializer, value, prefix);
        break $l$block;
      }finally {
        this_0.close_yn9xrc_k$();
      }
    }
    return stringWriter.toString();
  };
  protoOf(XML).encodeToString_yewaw2_k$ = function (serializer, value, rootName) {
    var stringWriter = new StringWriter();
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.core.impl.multiplatform.use' call
      var this_0 = XmlStreaming_getInstance().newWriter_3zvlr3_k$(stringWriter, this.config_1.get_repairNamespaces_s0niy6_k$(), this.config_1.get_xmlDeclMode_lc8ced_k$());
      try {
        this.encodeToWriter_p8k5c_k$(this_0, serializer, value, rootName);
        break $l$block;
      }finally {
        this_0.close_yn9xrc_k$();
      }
    }
    return stringWriter.toString();
  };
  protoOf(XML).encodeToWriter_xpdsk3_k$ = function (target, serializer, value, prefix) {
    target.set_indentString_30d8vk_k$(this.config_1.get_indentString_li4jl2_k$());
    if (!(prefix == null)) {
      var root = XmlRootDescriptor_init_$Create$(this.config_1, this.serializersModule_1, serializer.get_descriptor_wjt6a0_k$());
      var serialQName = copy(root.getElementDescriptor_ncda77_k$(0).get_tagName_ocsgis_k$(), prefix);
      this.encodeToWriter_p8k5c_k$(target, serializer, value, serialQName);
    } else {
      this.encodeToWriter_p8k5c_k$(target, serializer, value, null);
    }
  };
  protoOf(XML).encodeToWriter$default_eh7zsn_k$ = function (target, serializer, value, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    var tmp;
    if ($super === VOID) {
      this.encodeToWriter_xpdsk3_k$(target, serializer, value, prefix);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.encodeToWriter_xpdsk3_k$.call(this, target, serializer, value, prefix);
    }
    return tmp;
  };
  protoOf(XML).encodeToWriter_p8k5c_k$ = function (target, serializer, value, rootName) {
    target.set_indentString_30d8vk_k$(this.config_1.get_indentString_li4jl2_k$());
    if (target.get_depth_iq7qmy_k$() === 0) {
      switch (this.config_1.get_xmlDeclMode_lc8ced_k$().get_ordinal_ip24qg_k$()) {
        case 1:
          target.startDocument$default_lmadgb_k$(this.config_1.get_xmlVersion_oyodyu_k$().get_versionString_blgteo_k$());
          break;
        case 3:
          target.startDocument$default_lmadgb_k$(this.config_1.get_xmlVersion_oyodyu_k$().get_versionString_blgteo_k$(), 'UTF-8');
          break;
        case 0:
        case 2:
          break;
      }
    }
    var root = new XmlRootDescriptor(this.config_1, this.serializersModule_1, serializer.get_descriptor_wjt6a0_k$(), rootName, false);
    var xmlDescriptor = root.getElementDescriptor_ncda77_k$(0);
    var xmlEncoderBase = new XmlEncoderBase(this.serializersModule_1, this.config_1, target);
    var tmp;
    if (this.config_1.get_isCollectingNSAttributes_hmccuf_k$()) {
      var collectedNamespaces = collectNamespaces(this, xmlDescriptor, xmlEncoderBase, serializer, value);
      // Inline function 'kotlin.collections.associate' call
      var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault(collectedNamespaces, 10)), 16);
      // Inline function 'kotlin.collections.associateTo' call
      var destination = LinkedHashMap_init_$Create$_0(capacity);
      var tmp0_iterator = collectedNamespaces.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'kotlin.collections.plusAssign' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.XML.encodeToWriter.<anonymous>' call
        var pair = to(element.get_namespaceURI_g6nmhy_k$(), element.get_prefix_i78za3_k$());
        destination.put_4fpzoq_k$(pair.get_first_irdx8n_k$(), pair.get_second_jf7fjx_k$());
      }
      var prefixMap = destination;
      // Inline function 'kotlin.apply' call
      var this_0 = Builder_init_$Create$_0(this.config_1);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.XML.encodeToWriter.<anonymous>' call
      var tmp0_elvis_lhs = this_0.get_policy_i5q4hn_k$();
      this_0.set_policy_8e9pnh_k$(new PrefixWrappingPolicy(tmp0_elvis_lhs == null ? this_0.policyBuilder_uaepdj_k$().build_1k0s4u_k$() : tmp0_elvis_lhs, prefixMap));
      var newConfig = XmlConfig_init_$Create$_4(this_0);
      var remappedEncoderBase = new XmlEncoderBase(this.serializersModule_1, newConfig, target);
      var newRootName = rootName == null ? null : remapPrefix_0(rootName, prefixMap);
      var newRoot = new XmlRootDescriptor(newConfig, this.serializersModule_1, serializer.get_descriptor_wjt6a0_k$(), newRootName, false);
      var newDescriptor = newRoot.getElementDescriptor_ncda77_k$(0);
      tmp = new NSAttrXmlEncoder(remappedEncoderBase, newDescriptor, collectedNamespaces, -1);
    } else {
      tmp = new XmlEncoder(xmlEncoderBase, xmlDescriptor, -1);
    }
    var encoder = tmp;
    serializer.serialize_5ase3y_k$(encoder, value);
  };
  protoOf(XML).decodeFromString_jwu9sq_k$ = function (deserializer, string) {
    return this.decodeFromReader$default_hoidq8_k$(deserializer, XmlStreaming_getInstance().newReader_z0cnp6_k$(string));
  };
  protoOf(XML).decodeFromString_z0sk86_k$ = function (deserializer, string, rootName) {
    return this.decodeFromReader_klfvsm_k$(deserializer, XmlStreaming_getInstance().newReader_z0cnp6_k$(string), rootName);
  };
  protoOf(XML).decodeFromReader_klfvsm_k$ = function (deserializer, reader, rootName) {
    var tmp;
    if (rootName == null) {
      var tmp$ret$0;
      $l$block: {
        // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
        var tmp0_iterator = deserializer.get_descriptor_wjt6a0_k$().get_annotations_20dirp_k$().iterator_jk1svi_k$();
        while (tmp0_iterator.hasNext_bitz1p_k$()) {
          var e = tmp0_iterator.next_20eer_k$();
          if (e instanceof XmlSerialName) {
            tmp$ret$0 = e;
            break $l$block;
          }
        }
        tmp$ret$0 = null;
      }
      var tmp0_safe_receiver = tmp$ret$0;
      tmp = tmp0_safe_receiver == null ? null : toQName(tmp0_safe_receiver, deserializer.get_descriptor_wjt6a0_k$().get_serialName_u2rqhk_k$(), null);
    } else {
      tmp = rootName;
    }
    var serialName = tmp;
    skipPreamble(reader);
    var xmlDecoderBase = new XmlDecoderBase(this.serializersModule_1, this.config_1, reader);
    var rootDescriptor = new XmlRootDescriptor(this.config_1, this.serializersModule_1, deserializer.get_descriptor_wjt6a0_k$(), serialName, false);
    var elementDescriptor = rootDescriptor.getElementDescriptor_ncda77_k$(0);
    var tmp2_safe_receiver = elementDescriptor instanceof XmlPolymorphicDescriptor ? elementDescriptor : null;
    var tmp_0;
    if (tmp2_safe_receiver == null) {
      tmp_0 = null;
    } else {
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.XML.decodeFromReader.<anonymous>' call
      var tagName = serialName == null ? reader.get_name_woqyms_k$() : serialName;
      var tmp$ret$2;
      $l$block_1: {
        // Inline function 'kotlin.collections.singleOrNull' call
        var single = null;
        var found = false;
        var tmp0_iterator_0 = tmp2_safe_receiver.get_polyInfo_mizov1_k$().get_values_ksazhn_k$().iterator_jk1svi_k$();
        while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
          var element = tmp0_iterator_0.next_20eer_k$();
          // Inline function 'nl.adaptivity.xmlutil.serialization.XML.decodeFromReader.<anonymous>.<anonymous>' call
          if (isEquivalent(tagName, element.get_tagName_ocsgis_k$())) {
            if (found) {
              tmp$ret$2 = null;
              break $l$block_1;
            }
            single = element;
            found = true;
          }
        }
        if (!found) {
          tmp$ret$2 = null;
          break $l$block_1;
        }
        tmp$ret$2 = single;
      }
      var tmp1_safe_receiver = tmp$ret$2;
      var tmp_1;
      if (tmp1_safe_receiver == null) {
        tmp_1 = null;
      } else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.XML.decodeFromReader.<anonymous>.<anonymous>' call
        tmp_1 = new PolyInfo(tagName, 0, tmp1_safe_receiver);
      }
      tmp_0 = tmp_1;
    }
    var polyInfo = tmp_0;
    var decoder = new XmlDecoder(xmlDecoderBase, elementDescriptor, polyInfo);
    return decoder.decodeSerializableValue_xpnpad_k$(deserializer);
  };
  protoOf(XML).decodeFromReader$default_hoidq8_k$ = function (deserializer, reader, rootName, $super) {
    rootName = rootName === VOID ? null : rootName;
    return $super === VOID ? this.decodeFromReader_klfvsm_k$(deserializer, reader, rootName) : $super.decodeFromReader_klfvsm_k$.call(this, deserializer, reader, rootName);
  };
  protoOf(XML).xmlDescriptor_hoga1a_k$ = function (serializer, rootName) {
    return xmlDescriptor(this, serializer.get_descriptor_wjt6a0_k$(), rootName);
  };
  protoOf(XML).xmlDescriptor$default_hhwavs_k$ = function (serializer, rootName, $super) {
    rootName = rootName === VOID ? null : rootName;
    return $super === VOID ? this.xmlDescriptor_hoga1a_k$(serializer, rootName) : $super.xmlDescriptor_hoga1a_k$.call(this, serializer, rootName);
  };
  protoOf(XML).xmlDescriptor_2rgxsh_k$ = function (deserializer, rootName) {
    return xmlDescriptor(this, deserializer.get_descriptor_wjt6a0_k$(), rootName);
  };
  protoOf(XML).xmlDescriptor$default_xamdd3_k$ = function (deserializer, rootName, $super) {
    rootName = rootName === VOID ? null : rootName;
    return $super === VOID ? this.xmlDescriptor_2rgxsh_k$(deserializer, rootName) : $super.xmlDescriptor_2rgxsh_k$.call(this, deserializer, rootName);
  };
  protoOf(XML).xmlDescriptor_3yyg9c_k$ = function (deserializer, rootName) {
    return xmlDescriptor(this, deserializer.get_descriptor_wjt6a0_k$(), rootName);
  };
  protoOf(XML).xmlDescriptor$default_aq39mc_k$ = function (deserializer, rootName, $super) {
    rootName = rootName === VOID ? null : rootName;
    return $super === VOID ? this.xmlDescriptor_3yyg9c_k$(deserializer, rootName) : $super.xmlDescriptor_3yyg9c_k$.call(this, deserializer, rootName);
  };
  protoOf(XML).get_repairNamespaces_s0niy6_k$ = function () {
    return this.config_1.get_repairNamespaces_s0niy6_k$();
  };
  protoOf(XML).get_omitXmlDecl_tgk0y9_k$ = function () {
    return this.config_1.get_omitXmlDecl_tgk0y9_k$();
  };
  protoOf(XML).get_indent_etpsj9_k$ = function () {
    return this.config_1.get_indent_etpsj9_k$();
  };
  protoOf(XML).copy_xrifu4_k$ = function (config, serializersModule) {
    return new XML(config, serializersModule);
  };
  protoOf(XML).copy$default_71x06f_k$ = function (config, serializersModule, $super) {
    config = config === VOID ? this.config_1 : config;
    serializersModule = serializersModule === VOID ? this.serializersModule_1 : serializersModule;
    return $super === VOID ? this.copy_xrifu4_k$(config, serializersModule) : $super.copy_xrifu4_k$.call(this, config, serializersModule);
  };
  protoOf(XML).stringify_wh4f8n_k$ = function (obj, saver, prefix) {
    return this.encodeToString_hnhdf2_k$(saver, obj, prefix);
  };
  protoOf(XML).stringify$default_84vkdf_k$ = function (obj, saver, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    return $super === VOID ? this.stringify_wh4f8n_k$(obj, saver, prefix) : $super.stringify_wh4f8n_k$.call(this, obj, saver, prefix);
  };
  protoOf(XML).stringify_6cn6ts_k$ = function (serializer, value) {
    return this.encodeToString_k0apqx_k$(serializer, value);
  };
  protoOf(XML).stringify_vb60jb_k$ = function (serializer, obj, prefix) {
    return this.encodeToString_hnhdf2_k$(serializer, obj, prefix);
  };
  protoOf(XML).toXml_drhwr_k$ = function (target, serializer, value, prefix) {
    this.encodeToWriter_xpdsk3_k$(target, serializer, value, prefix);
  };
  protoOf(XML).toXml$default_dgta4v_k$ = function (target, serializer, value, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    var tmp;
    if ($super === VOID) {
      this.toXml_drhwr_k$(target, serializer, value, prefix);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.toXml_drhwr_k$.call(this, target, serializer, value, prefix);
    }
    return tmp;
  };
  protoOf(XML).parse_uyo44q_k$ = function (deserializer, reader) {
    return this.decodeFromReader$default_hoidq8_k$(deserializer, reader);
  };
  protoOf(XML).parse_d34tt0_k$ = function (deserializer, string) {
    return this.decodeFromString_jwu9sq_k$(deserializer, string);
  };
  protoOf(XML).stringify_7m18cb_k$ = function (kClass, obj, prefix) {
    throw UnsupportedOperationException_init_$Create$('Not supported by serialization library ');
  };
  protoOf(XML).stringify$default_zedjr3_k$ = function (kClass, obj, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    return $super === VOID ? this.stringify_7m18cb_k$(kClass, obj, prefix) : $super.stringify_7m18cb_k$.call(this, kClass, obj, prefix);
  };
  protoOf(XML).toXml_40xm53_k$ = function (target, kClass, obj, prefix) {
    throw UnsupportedOperationException_init_$Create$('Reflection no longer works');
  };
  protoOf(XML).toXml$default_8kfhf7_k$ = function (target, kClass, obj, prefix, $super) {
    prefix = prefix === VOID ? null : prefix;
    var tmp;
    if ($super === VOID) {
      this.toXml_40xm53_k$(target, kClass, obj, prefix);
      tmp = Unit_getInstance();
    } else {
      tmp = $super.toXml_40xm53_k$.call(this, target, kClass, obj, prefix);
    }
    return tmp;
  };
  protoOf(XML).parse_j7zf0e_k$ = function (kClass, reader) {
    throw UnsupportedOperationException_init_$Create$('Reflection for serialization is no longer supported');
  };
  protoOf(XML).parse_7s29lc_k$ = function (kClass, string) {
    throw UnsupportedOperationException_init_$Create$('Reflection for serialization is no longer supported');
  };
  function copy(_this__u8e3s4, prefix) {
    var tmp;
    if (prefix === VOID) {
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      tmp = _this__u8e3s4.getPrefix_bu8bd4_k$();
    } else {
      tmp = prefix;
    }
    prefix = tmp;
    _init_properties_XML_kt__j4k93v();
    var tmp_0;
    // Inline function 'nl.adaptivity.xmlutil.prefix' call
    if (prefix === _this__u8e3s4.getPrefix_bu8bd4_k$()) {
      tmp_0 = _this__u8e3s4;
    } else {
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp_1 = _this__u8e3s4.getNamespaceURI_665tvr_k$();
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      var tmp$ret$3 = _this__u8e3s4.getLocalPart_k3cdyw_k$();
      tmp_0 = new QName(tmp_1, tmp$ret$3, prefix);
    }
    return tmp_0;
  }
  function toQName(_this__u8e3s4, serialName, parentNamespace) {
    _init_properties_XML_kt__j4k93v();
    var tmp;
    if (_this__u8e3s4.get_namespace_t826ya_k$() === get_UNSET_ANNOTATION_VALUE()) {
      var tmp_0;
      if (_this__u8e3s4.get_value_j01efc_k$() === get_UNSET_ANNOTATION_VALUE()) {
        var tmp_1;
        if (parentNamespace == null) {
          tmp_1 = null;
        } else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          // Inline function 'nl.adaptivity.xmlutil.serialization.toQName.<anonymous>' call
          tmp_1 = QName_init_$Create$_0(parentNamespace.get_namespaceURI_g6nmhy_k$(), serialName);
        }
        var tmp2_elvis_lhs = tmp_1;
        tmp_0 = tmp2_elvis_lhs == null ? QName_init_$Create$(serialName) : tmp2_elvis_lhs;
      } else {
        var tmp_2;
        if (parentNamespace == null) {
          tmp_2 = null;
        } else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          // Inline function 'nl.adaptivity.xmlutil.serialization.toQName.<anonymous>' call
          tmp_2 = QName_init_$Create$_0(parentNamespace.get_namespaceURI_g6nmhy_k$(), _this__u8e3s4.get_value_j01efc_k$());
        }
        var tmp4_elvis_lhs = tmp_2;
        tmp_0 = tmp4_elvis_lhs == null ? QName_init_$Create$(_this__u8e3s4.get_value_j01efc_k$()) : tmp4_elvis_lhs;
      }
      tmp = tmp_0;
    } else if (_this__u8e3s4.get_value_j01efc_k$() === get_UNSET_ANNOTATION_VALUE()) {
      tmp = _this__u8e3s4.get_prefix_i78za3_k$() === get_UNSET_ANNOTATION_VALUE() ? QName_init_$Create$_0(serialName, _this__u8e3s4.get_namespace_t826ya_k$()) : new QName(serialName, _this__u8e3s4.get_namespace_t826ya_k$(), _this__u8e3s4.get_prefix_i78za3_k$());
    } else if (_this__u8e3s4.get_prefix_i78za3_k$() === get_UNSET_ANNOTATION_VALUE()) {
      tmp = QName_init_$Create$_0(_this__u8e3s4.get_namespace_t826ya_k$(), _this__u8e3s4.get_value_j01efc_k$());
    } else {
      tmp = new QName(_this__u8e3s4.get_namespace_t826ya_k$(), _this__u8e3s4.get_value_j01efc_k$(), _this__u8e3s4.get_prefix_i78za3_k$());
    }
    return tmp;
  }
  function toQName_0(_this__u8e3s4) {
    _init_properties_XML_kt__j4k93v();
    return _this__u8e3s4.get_namespace_t826ya_k$() === get_UNSET_ANNOTATION_VALUE() ? QName_init_$Create$(_this__u8e3s4.get_value_j01efc_k$()) : _this__u8e3s4.get_prefix_i78za3_k$() === get_UNSET_ANNOTATION_VALUE() ? QName_init_$Create$_0(_this__u8e3s4.get_namespace_t826ya_k$(), _this__u8e3s4.get_value_j01efc_k$()) : new QName(_this__u8e3s4.get_namespace_t826ya_k$(), _this__u8e3s4.get_value_j01efc_k$(), _this__u8e3s4.get_prefix_i78za3_k$());
  }
  function getValueChild(_this__u8e3s4) {
    _init_properties_XML_kt__j4k93v();
    var inductionVariable = 0;
    var last = _this__u8e3s4.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp$ret$0;
        $l$block_0: {
          // Inline function 'kotlin.collections.any' call
          var this_0 = _this__u8e3s4.get_serialDescriptor_vvwkac_k$().getElementAnnotations_omrjs6_k$(i);
          var tmp;
          if (isInterface(this_0, Collection)) {
            tmp = this_0.isEmpty_y1axqb_k$();
          } else {
            tmp = false;
          }
          if (tmp) {
            tmp$ret$0 = false;
            break $l$block_0;
          }
          var tmp0_iterator = this_0.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var element = tmp0_iterator.next_20eer_k$();
            // Inline function 'nl.adaptivity.xmlutil.serialization.getValueChild.<anonymous>' call
            if (element instanceof XmlValue) {
              tmp$ret$0 = true;
              break $l$block_0;
            }
          }
          tmp$ret$0 = false;
        }
        if (tmp$ret$0)
          return i;
      }
       while (inductionVariable < last);
    return -1;
  }
  function getAttrMap(_this__u8e3s4) {
    _init_properties_XML_kt__j4k93v();
    var inductionVariable = 0;
    var last = _this__u8e3s4.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp = _this__u8e3s4.getElementDescriptor_ncda77_k$(i);
        if (tmp instanceof XmlAttributeMapDescriptor)
          return i;
      }
       while (inductionVariable < last);
    return -1;
  }
  function copy_0(_this__u8e3s4, namespaceURI, localPart, prefix) {
    var tmp;
    if (namespaceURI === VOID) {
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      tmp = _this__u8e3s4.getNamespaceURI_665tvr_k$();
    } else {
      tmp = namespaceURI;
    }
    namespaceURI = tmp;
    var tmp_0;
    if (localPart === VOID) {
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      tmp_0 = _this__u8e3s4.getLocalPart_k3cdyw_k$();
    } else {
      tmp_0 = localPart;
    }
    localPart = tmp_0;
    var tmp_1;
    if (prefix === VOID) {
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      tmp_1 = _this__u8e3s4.getPrefix_bu8bd4_k$();
    } else {
      tmp_1 = prefix;
    }
    prefix = tmp_1;
    _init_properties_XML_kt__j4k93v();
    return new QName(namespaceURI, localPart, prefix);
  }
  function getValueChild_0(_this__u8e3s4) {
    _init_properties_XML_kt__j4k93v();
    var inductionVariable = 0;
    var last = _this__u8e3s4.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp$ret$0;
        $l$block_0: {
          // Inline function 'kotlin.collections.any' call
          var this_0 = _this__u8e3s4.getElementAnnotations_omrjs6_k$(i);
          var tmp;
          if (isInterface(this_0, Collection)) {
            tmp = this_0.isEmpty_y1axqb_k$();
          } else {
            tmp = false;
          }
          if (tmp) {
            tmp$ret$0 = false;
            break $l$block_0;
          }
          var tmp0_iterator = this_0.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var element = tmp0_iterator.next_20eer_k$();
            // Inline function 'nl.adaptivity.xmlutil.serialization.getValueChild.<anonymous>' call
            if (element instanceof XmlValue) {
              tmp$ret$0 = true;
              break $l$block_0;
            }
          }
          tmp$ret$0 = false;
        }
        if (tmp$ret$0)
          return i;
      }
       while (inductionVariable < last);
    return Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$();
  }
  var properties_initialized_XML_kt_umqxeh;
  function _init_properties_XML_kt__j4k93v() {
    if (!properties_initialized_XML_kt_umqxeh) {
      properties_initialized_XML_kt_umqxeh = true;
      var tmp = getPlatformDefaultModule();
      // Inline function 'kotlinx.serialization.modules.SerializersModule' call
      var builder = new SerializersModuleBuilder();
      // Inline function 'nl.adaptivity.xmlutil.serialization.defaultXmlModule.<anonymous>' call
      builder.contextual_s0h8js_k$(getKClass(CompactFragment), CompactFragmentSerializer_getInstance());
      builder.contextual_s0h8js_k$(getKClass(QName), QNameSerializer_getInstance());
      var tmp$ret$0 = builder.build_1k0s4u_k$();
      defaultXmlModule = plus(tmp, tmp$ret$0);
    }
  }
  function _set_triggerInline__bbmpl8($this, _set____db54di) {
    $this.triggerInline_1 = _set____db54di;
  }
  function _get_triggerInline__qje83k($this) {
    return $this.triggerInline_1;
  }
  function _get_stringValue__ttkq0h($this) {
    return $this.stringValue_1;
  }
  function _set_notNullChecked__ucwv3e($this, _set____db54di) {
    $this.notNullChecked_1 = _set____db54di;
  }
  function _get_notNullChecked__f53qua($this) {
    return $this.notNullChecked_1;
  }
  function _get_ignoredAttributes__v49mqg($this) {
    return $this.ignoredAttributes_1;
  }
  function XmlDecoderBase$SerialValueDecoder$decodeInline$1() {
    this.tagId_1 = null;
  }
  protoOf(XmlDecoderBase$SerialValueDecoder$decodeInline$1).set_tagId_71y5un_k$ = function (_set____db54di) {
    this.tagId_1 = _set____db54di;
  };
  protoOf(XmlDecoderBase$SerialValueDecoder$decodeInline$1).get_tagId_iyxoh8_k$ = function () {
    return this.tagId_1;
  };
  function _get_readTagName__9h4hni($this) {
    return $this.readTagName_1;
  }
  function _get_ignoredAttributes__v49mqg_0($this) {
    return $this.ignoredAttributes_1;
  }
  function _get_nameToMembers__8v9cwy($this) {
    return $this.nameToMembers_1;
  }
  function _get_polyChildren__onn8ao($this) {
    return $this.polyChildren_1;
  }
  function _set_preserveWhitespace__3av22a($this, _set____db54di) {
    $this.preserveWhitespace_1 = _set____db54di;
  }
  function _get_preserveWhitespace__xsdosi($this) {
    return $this.preserveWhitespace_1;
  }
  function _get_tagDepth__oy3ota($this) {
    return $this.tagDepth_1;
  }
  function _get_seenItems__b3133g($this) {
    return $this.seenItems_1;
  }
  function _set_nulledItemsIdx__jruhas($this, _set____db54di) {
    $this.nulledItemsIdx_1 = _set____db54di;
  }
  function _get_nulledItemsIdx__pq64mw($this) {
    return $this.nulledItemsIdx_1;
  }
  function _set_lastAttrIndex__j3djqy($this, _set____db54di) {
    $this.lastAttrIndex_1 = _set____db54di;
  }
  function _get_otherAttrIndex__mmfojq($this) {
    return $this.otherAttrIndex_1;
  }
  function _set_pendingRecovery__8tywxz($this, _set____db54di) {
    $this.pendingRecovery_1 = _set____db54di;
  }
  function _get_pendingRecovery__19rakl($this) {
    return $this.pendingRecovery_1;
  }
  function toNonTransparentChild(_this__u8e3s4, $this) {
    var result = _this__u8e3s4;
    $l$loop: while (true) {
      var tmp;
      if (result instanceof XmlInlineDescriptor) {
        tmp = true;
      } else {
        var tmp_0;
        if (result instanceof XmlListDescriptor) {
          tmp_0 = result.get_isListEluded_vahr8a_k$();
        } else {
          tmp_0 = false;
        }
        tmp = tmp_0;
      }
      if (!tmp) {
        break $l$loop;
      }
      result = result.getElementDescriptor_ncda77_k$(0);
    }
    var tmp_1;
    var tmp_2;
    if (result instanceof XmlMapDescriptor) {
      tmp_2 = result.get_isListEluded_vahr8a_k$();
    } else {
      tmp_2 = false;
    }
    if (tmp_2) {
      tmp_1 = result.get_isValueCollapsed_3vm2k9_k$();
    } else {
      tmp_1 = false;
    }
    if (tmp_1) {
      return toNonTransparentChild(result.getElementDescriptor_ncda77_k$(1), $this);
    }
    return result;
  }
  function markSeenOrHandleUnknown(_this__u8e3s4, $this, body) {
    var tmp;
    if (_this__u8e3s4 === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$()) {
      tmp = body();
    } else {
      $this.seenItems_1[_this__u8e3s4] = true;
      tmp = _this__u8e3s4;
    }
    return tmp;
  }
  function nextNulledItemsIdx($this) {
    var inductionVariable = $this.nulledItemsIdx_1 + 1 | 0;
    var last = $this.seenItems_1.length;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (!($this.seenItems_1[i] ? true : $this.get_xmlDescriptor_br8xbx_k$().isElementOptional_heqq56_k$(i))) {
          var childDesc = $this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(i);
          var tmp1_safe_receiver = childDesc instanceof XmlValueDescriptor ? childDesc : null;
          var default_0 = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_default_qtagd4_k$();
          var tmp;
          if (i === getValueChild($this.get_xmlDescriptor_br8xbx_k$())) {
            tmp = true;
          } else if (!(default_0 == null)) {
            tmp = true;
          } else {
            var tmp_0;
            if (childDesc.get_isNullable_67sy7o_k$()) {
              tmp_0 = true;
            } else {
              var tmp2_subject = childDesc.get_kind_wop7ml_k$();
              tmp_0 = (equals(tmp2_subject, LIST_getInstance()) ? true : equals(tmp2_subject, MAP_getInstance())) ? true : false;
            }
            tmp = tmp_0;
          }
          var defaultOrList = tmp;
          if (defaultOrList) {
            $this.nulledItemsIdx_1 = i;
            return Unit_getInstance();
          }
        }
      }
       while (inductionVariable < last);
    $this.nulledItemsIdx_1 = $this.seenItems_1.length;
  }
  function indexOf$checkInputType(_this__u8e3s4, $inputType, this$0) {
    return $inputType.mapsTo_jr2cj2_k$(this$0.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(_this__u8e3s4)) ? _this__u8e3s4 : null;
  }
  function indexOf$checkInputType_0(_this__u8e3s4, $inputType) {
    return $inputType.mapsTo_jr2cj2_k$(_this__u8e3s4.descriptor_1) ? _this__u8e3s4 : null;
  }
  function _set_listIndex__layt0x($this, _set____db54di) {
    $this.listIndex_1 = _set____db54di;
  }
  function _get_listIndex__kfasjn($this) {
    return $this.listIndex_1;
  }
  function _get_attrValues__vom93c($this) {
    return $this.attrValues_1;
  }
  function _get_polyInfo__ry46lt($this) {
    return $this.polyInfo_1;
  }
  function _get_parentXmlDescriptor__yo818r($this) {
    var tmp = $this.get_xmlDescriptor_br8xbx_k$().get_tagParent_zbggxx_k$().get_descriptor_wjt6a0_k$();
    return tmp instanceof XmlDescriptor ? tmp : THROW_CCE();
  }
  function _get_listChildIdx__ih8wwk($this) {
    return $this.listChildIdx_1;
  }
  function _set_finished__nxw66z($this, _set____db54di) {
    $this.finished_1 = _set____db54di;
  }
  function _get_finished__yabkbd($this) {
    return $this.finished_1;
  }
  function _set_childCount__q0s6n8($this, _set____db54di) {
    $this.childCount_1 = _set____db54di;
  }
  function _get_childCount__ayjli0($this) {
    return $this.childCount_1;
  }
  function _get_polyInfo__ry46lt_0($this) {
    return $this.polyInfo_1;
  }
  function XmlDecoderBase$AnonymousMapDecoder$decodeElementIndex$lambda(this$0) {
    return function () {
      return '' + this$0.get_xmlDescriptor_br8xbx_k$().get_entryName_l031w_k$() + ' != ' + this$0.get_input_it4gip_k$().get_name_woqyms_k$();
    };
  }
  function _get_polyInfo__ry46lt_1($this) {
    return $this.polyInfo_1;
  }
  function _set_nextIndex__5mwvzu($this, _set____db54di) {
    $this.nextIndex_1 = _set____db54di;
  }
  function _get_nextIndex__nnxkeq($this) {
    return $this.nextIndex_1;
  }
  function _set_detectedPolyType__476mtr($this, _set____db54di) {
    $this.detectedPolyType_1 = _set____db54di;
  }
  function _get_detectedPolyType__xaavwj($this) {
    return $this.detectedPolyType_1;
  }
  function _set_polyTypeAttrname__25x99n($this, _set____db54di) {
    $this.polyTypeAttrname_1 = _set____db54di;
  }
  function _get_polyTypeAttrname__qx6zt5($this) {
    return $this.polyTypeAttrname_1;
  }
  function _get__idMap__86wgl3($this) {
    return $this._idMap_1;
  }
  function DecodeCommons($outer, xmlDescriptor) {
    this.$this_2 = $outer;
    XmlCodec.call(this, $outer, xmlDescriptor);
  }
  protoOf(DecodeCommons).get_config_c0698r_k$ = function () {
    return this.$this_2.get_config_c0698r_k$();
  };
  protoOf(DecodeCommons).get_serializersModule_piitvg_k$ = function () {
    return this.$this_2.get_serializersModule_piitvg_k$();
  };
  protoOf(DecodeCommons).get_input_it4gip_k$ = function () {
    return this.$this_2.input_1;
  };
  protoOf(DecodeCommons).decodeNull_jzrmuj_k$ = function () {
    return null;
  };
  protoOf(DecodeCommons).decodeBoolean_m0aca_k$ = function () {
    return toBoolean(this.decodeStringImpl$default_qrag1k_k$());
  };
  protoOf(DecodeCommons).decodeByte_jzz7je_k$ = function () {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$()) {
      // Inline function 'kotlin.UByte.toByte' call
      var this_0 = toUByte(this.decodeStringImpl$default_qrag1k_k$());
      tmp = _UByte___get_data__impl__jof9qr(this_0);
    } else {
      tmp = toByte(this.decodeStringImpl$default_qrag1k_k$());
    }
    return tmp;
  };
  protoOf(DecodeCommons).decodeShort_jjqk32_k$ = function () {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$()) {
      // Inline function 'kotlin.UShort.toShort' call
      var this_0 = toUShort(this.decodeStringImpl$default_qrag1k_k$());
      tmp = _UShort___get_data__impl__g0245(this_0);
    } else {
      tmp = toShort(this.decodeStringImpl$default_qrag1k_k$());
    }
    return tmp;
  };
  protoOf(DecodeCommons).decodeInt_8iq8f5_k$ = function () {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$()) {
      // Inline function 'kotlin.UInt.toInt' call
      var this_0 = toUInt(this.decodeStringImpl$default_qrag1k_k$());
      tmp = _UInt___get_data__impl__f0vqqw(this_0);
    } else {
      tmp = toInt(this.decodeStringImpl$default_qrag1k_k$());
    }
    return tmp;
  };
  protoOf(DecodeCommons).decodeLong_jzt186_k$ = function () {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$()) {
      // Inline function 'kotlin.ULong.toLong' call
      var this_0 = toULong(this.decodeStringImpl$default_qrag1k_k$());
      tmp = _ULong___get_data__impl__fggpzb(this_0);
    } else {
      tmp = toLong(this.decodeStringImpl$default_qrag1k_k$());
    }
    return tmp;
  };
  protoOf(DecodeCommons).decodeFloat_jcnrwu_k$ = function () {
    // Inline function 'kotlin.text.toFloat' call
    var this_0 = this.decodeStringImpl$default_qrag1k_k$();
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return toDouble(this_0);
  };
  protoOf(DecodeCommons).decodeDouble_ur8l0f_k$ = function () {
    return toDouble(this.decodeStringImpl$default_qrag1k_k$());
  };
  protoOf(DecodeCommons).decodeChar_dcmcfa_k$ = function () {
    return single_0(this.decodeStringImpl$default_qrag1k_k$());
  };
  protoOf(DecodeCommons).decodeEnum_slg6lu_k$ = function (enumDescriptor) {
    var stringName = this.decodeStringImpl$default_qrag1k_k$();
    var inductionVariable = 0;
    var last = enumDescriptor.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (stringName === this.get_config_c0698r_k$().get_policy_i5q4hn_k$().enumEncoding_gn3znf_k$(enumDescriptor, i))
          return i;
      }
       while (inductionVariable < last);
    throw SerializationException_init_$Create$('No enum constant found for name ' + stringName + ' in ' + enumDescriptor.get_serialName_u2rqhk_k$());
  };
  protoOf(DecodeCommons).decodeStringImpl$default_qrag1k_k$ = function (defaultOverEmpty, $super) {
    defaultOverEmpty = defaultOverEmpty === VOID ? true : defaultOverEmpty;
    return $super === VOID ? this.decodeStringImpl_ptny92_k$(defaultOverEmpty) : $super.decodeStringImpl_ptny92_k$.call(this, defaultOverEmpty);
  };
  protoOf(DecodeCommons).decodeString_x3hxsx_k$ = function () {
    return this.decodeStringImpl_ptny92_k$(false);
  };
  function XmlDecoder($outer, xmlDescriptor, polyInfo, attrIndex) {
    polyInfo = polyInfo === VOID ? null : polyInfo;
    attrIndex = attrIndex === VOID ? -1 : attrIndex;
    this.$this_3 = $outer;
    DecodeCommons.call(this, $outer, xmlDescriptor);
    this.polyInfo_1 = polyInfo;
    this.attrIndex_1 = attrIndex;
    this.triggerInline_1 = false;
  }
  protoOf(XmlDecoder).get_polyInfo_mizov1_k$ = function () {
    return this.polyInfo_1;
  };
  protoOf(XmlDecoder).get_attrIndex_88x5tk_k$ = function () {
    return this.attrIndex_1;
  };
  protoOf(XmlDecoder).get_typeDiscriminatorName_ksdz44_k$ = function () {
    return null;
  };
  protoOf(XmlDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    if (this.$this_3.hasNullMark_g09bce_k$())
      return false;
    return !this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_END_DOCUMENT_getInstance());
  };
  protoOf(XmlDecoder).decodeNull_jzrmuj_k$ = function () {
    if (this.$this_3.hasNullMark_g09bce_k$()) {
      this.get_input_it4gip_k$().nextTag_ujozaf_k$();
      var tmp = this.get_input_it4gip_k$();
      var tmp_0 = EventType_END_ELEMENT_getInstance();
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp_1 = this.get_serialName_u2rqhk_k$().getNamespaceURI_665tvr_k$();
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      var tmp$ret$1 = this.get_serialName_u2rqhk_k$().getLocalPart_k3cdyw_k$();
      tmp.require_glcost_k$(tmp_0, tmp_1, tmp$ret$1);
      return null;
    }
    return protoOf(DecodeCommons).decodeNull_jzrmuj_k$.call(this);
  };
  protoOf(XmlDecoder).decodeInline_ux3vza_k$ = function (descriptor) {
    this.triggerInline_1 = true;
    return this;
  };
  protoOf(XmlDecoder).decodeStringImpl_ptny92_k$ = function (defaultOverEmpty) {
    var tmp = this.get_xmlDescriptor_br8xbx_k$();
    var tmp0_safe_receiver = tmp instanceof XmlValueDescriptor ? tmp : null;
    var defaultString = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_default_qtagd4_k$();
    var descOutputKind = this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$();
    var tmp_0;
    if (this.attrIndex_1 >= 0) {
      tmp_0 = this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(this.attrIndex_1);
    } else {
      var tmp_1;
      switch (descOutputKind.get_ordinal_ip24qg_k$()) {
        case 0:
          var tmp_2 = this.get_input_it4gip_k$();
          var tmp_3 = EventType_START_ELEMENT_getInstance();
          // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call

          var tmp_4 = this.get_serialName_u2rqhk_k$().getNamespaceURI_665tvr_k$();
          // Inline function 'nl.adaptivity.xmlutil.localPart' call

          var tmp$ret$1 = this.get_serialName_u2rqhk_k$().getLocalPart_k3cdyw_k$();
          tmp_2.require_glcost_k$(tmp_3, tmp_4, tmp$ret$1);
          tmp_1 = readSimpleElement(this.get_input_it4gip_k$());
          break;
        case 1:
          throw SerializationException_init_$Create$('Attribute parsing without a concrete index is unsupported');
        case 4:
          throw SerializationException_init_$Create$('Inline classes can not be decoded directly');
        case 3:
          tmp_1 = allConsecutiveTextContent(this.get_input_it4gip_k$());
          break;
        case 2:
          var tmp_5;
          if (this.get_xmlDescriptor_br8xbx_k$().get_preserveSpace_4xp4oh_k$()) {
            tmp_5 = allConsecutiveTextContent(this.get_input_it4gip_k$());
          } else {
            tmp_5 = allText(this.get_input_it4gip_k$());
          }

          tmp_1 = tmp_5;
          break;
        default:
          noWhenBranchMatchedException();
          break;
      }
      tmp_0 = tmp_1;
    }
    var stringValue = tmp_0;
    var tmp_6;
    var tmp_7;
    var tmp_8;
    if (defaultOverEmpty) {
      // Inline function 'kotlin.text.isEmpty' call
      tmp_8 = charSequenceLength(stringValue) === 0;
    } else {
      tmp_8 = false;
    }
    if (tmp_8) {
      tmp_7 = !(defaultString == null);
    } else {
      tmp_7 = false;
    }
    if (tmp_7) {
      tmp_6 = defaultString;
    } else {
      tmp_6 = stringValue;
    }
    return tmp_6;
  };
  protoOf(XmlDecoder).decodeStringChunked_f1gp7m_k$ = function (consumeChunk) {
    if (this.attrIndex_1 >= 0) {
      consumeChunksFromString(this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(this.attrIndex_1), consumeChunk);
      return Unit_getInstance();
    } else {
      var descOutputKind = this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$();
      switch (descOutputKind.get_ordinal_ip24qg_k$()) {
        case 0:
          var tmp = this.get_input_it4gip_k$();
          var tmp_0 = EventType_START_ELEMENT_getInstance();
          // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call

          var tmp_1 = this.get_serialName_u2rqhk_k$().getNamespaceURI_665tvr_k$();
          // Inline function 'nl.adaptivity.xmlutil.localPart' call

          var tmp$ret$1 = this.get_serialName_u2rqhk_k$().getLocalPart_k3cdyw_k$();
          tmp.require_glcost_k$(tmp_0, tmp_1, tmp$ret$1);
          readSimpleElementChunked(this.get_input_it4gip_k$(), consumeChunk);
          return Unit_getInstance();
        case 1:
          throw SerializationException_init_$Create$('Attribute parsing without a concrete index is unsupported');
        case 4:
          throw SerializationException_init_$Create$('Inline classes can not be decoded directly');
        case 3:
          return allConsecutiveTextContentChunked(this.get_input_it4gip_k$(), consumeChunk);
        case 2:
          var tmp_2;
          if (this.get_xmlDescriptor_br8xbx_k$().get_preserveSpace_4xp4oh_k$()) {
            allConsecutiveTextContentChunked(this.get_input_it4gip_k$(), consumeChunk);
            tmp_2 = Unit_getInstance();
          } else {
            allTextChunked(this.get_input_it4gip_k$(), consumeChunk);
            tmp_2 = Unit_getInstance();
          }

          return tmp_2;
        default:
          noWhenBranchMatchedException();
          break;
      }
    }
  };
  protoOf(XmlDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    throw AssertionError_init_$Create$('This should not happen as decodeSerializableValue should be called first');
  };
  protoOf(XmlDecoder).decodeSerializableValue_xpnpad_k$ = function (deserializer) {
    var deser = this.get_xmlDescriptor_br8xbx_k$().effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    var tmp;
    var tmp_0;
    if (this.triggerInline_1) {
      var tmp_1 = this.get_xmlDescriptor_br8xbx_k$();
      tmp_0 = tmp_1 instanceof XmlInlineDescriptor;
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      tmp = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    } else {
      tmp = this.get_xmlDescriptor_br8xbx_k$();
    }
    var desc = tmp;
    var serialValueDecoder = new SerialValueDecoder(this.$this_3, desc, this.polyInfo_1, this.attrIndex_1, this.get_typeDiscriminatorName_ksdz44_k$());
    var value = deser.deserialize_sy6x50_k$(serialValueDecoder);
    var tmp0_safe_receiver = serialValueDecoder.tagIdHolder_1;
    var tagId = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_tagId_iyxoh8_k$();
    if (!(tagId == null)) {
      // Inline function 'kotlin.checkNotNull' call
      // Inline function 'kotlin.contracts.contract' call
      $l$block: {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        if (value == null) {
          // Inline function 'kotlin.checkNotNull.<anonymous>' call
          var message = 'Required value was null.';
          throw IllegalStateException_init_$Create$(toString(message));
        } else {
          break $l$block;
        }
      }
      if (!(this.$this_3._idMap_1.put_4fpzoq_k$(tagId, value) == null))
        throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
    }
    return value;
  };
  function StringDecoder($outer, xmlDescriptor, stringValue) {
    this.$this_3 = $outer;
    DecodeCommons.call(this, $outer, xmlDescriptor);
    this.stringValue_1 = stringValue;
  }
  protoOf(StringDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    throw UnsupportedOperationException_init_$Create$('Strings cannot be decoded to structures');
  };
  protoOf(StringDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    return true;
  };
  protoOf(StringDecoder).decodeInline_ux3vza_k$ = function (descriptor) {
    return new StringDecoder(this.$this_3, this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0), this.stringValue_1);
  };
  protoOf(StringDecoder).decodeStringImpl_ptny92_k$ = function (defaultOverEmpty) {
    var tmp = this.get_xmlDescriptor_br8xbx_k$();
    var tmp0_safe_receiver = tmp instanceof XmlValueDescriptor ? tmp : null;
    var defaultString = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_default_qtagd4_k$();
    var tmp_0;
    if (defaultOverEmpty ? !(defaultString == null) : false) {
      // Inline function 'kotlin.text.isEmpty' call
      var this_0 = this.stringValue_1;
      tmp_0 = charSequenceLength(this_0) === 0;
    } else {
      tmp_0 = false;
    }
    if (tmp_0)
      return defaultString;
    return this.stringValue_1;
  };
  protoOf(StringDecoder).decodeSerializableValue_xpnpad_k$ = function (deserializer) {
    var deser = this.get_xmlDescriptor_br8xbx_k$().effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    return deser.deserialize_sy6x50_k$(this);
  };
  function TagIdHolder() {
  }
  function SerialValueDecoder($outer, xmlDescriptor, polyInfo, attrIndex, typeDiscriminatorName) {
    this.$this_4 = $outer;
    XmlDecoder.call(this, $outer, xmlDescriptor, polyInfo, attrIndex);
    this.typeDiscriminatorName_1 = typeDiscriminatorName;
    this.notNullChecked_1 = false;
    this.tagIdHolder_1 = null;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.ignoredAttributes_1 = ArrayList_init_$Create$();
  }
  protoOf(SerialValueDecoder).get_typeDiscriminatorName_ksdz44_k$ = function () {
    return this.typeDiscriminatorName_1;
  };
  protoOf(SerialValueDecoder).set_tagIdHolder_pwewr0_k$ = function (_set____db54di) {
    this.tagIdHolder_1 = _set____db54di;
  };
  protoOf(SerialValueDecoder).get_tagIdHolder_nh83yg_k$ = function () {
    return this.tagIdHolder_1;
  };
  protoOf(SerialValueDecoder).ignoreAttribute_xcg55t_k$ = function (name) {
    this.ignoredAttributes_1.add_utx5q5_k$(name);
  };
  protoOf(SerialValueDecoder).decodeStringImpl_ptny92_k$ = function (defaultOverEmpty) {
    var value = protoOf(XmlDecoder).decodeStringImpl_ptny92_k$.call(this, defaultOverEmpty);
    if (this.attrIndex_1 >= 0 ? this.get_xmlDescriptor_br8xbx_k$().get_isIdAttr_umav5r_k$() : false) {
      var tmp0_safe_receiver = this.tagIdHolder_1;
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.run' call
        // Inline function 'kotlin.contracts.contract' call
        tmp0_safe_receiver.set_tagId_71y5un_k$(value);
      }
    }
    return value;
  };
  protoOf(SerialValueDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    this.notNullChecked_1 = true;
    return protoOf(XmlDecoder).decodeNotNullMark_us4ba1_k$.call(this);
  };
  protoOf(SerialValueDecoder).decodeSerializableValue_xpnpad_k$ = function (deserializer) {
    return this.notNullChecked_1 ? deserializer.deserialize_sy6x50_k$(this) : protoOf(XmlDecoder).decodeSerializableValue_xpnpad_k$.call(this, deserializer);
  };
  protoOf(SerialValueDecoder).decodeInline_ux3vza_k$ = function (descriptor) {
    var tmp = this;
    tmp.tagIdHolder_1 = new XmlDecoderBase$SerialValueDecoder$decodeInline$1();
    return protoOf(XmlDecoder).decodeInline_ux3vza_k$.call(this, descriptor);
  };
  protoOf(SerialValueDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    if (descriptor.get_isNullable_67sy7o_k$()) {
      // Inline function 'kotlin.also' call
      var this_0 = new TagDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.get_typeDiscriminatorName_ksdz44_k$());
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
      this.tagIdHolder_1 = this_0;
      return this_0;
    }
    // Inline function 'kotlin.also' call
    var tmp;
    var tmp_0 = this.get_xmlDescriptor_br8xbx_k$().get_kind_wop7ml_k$();
    if (tmp_0 instanceof PrimitiveKind) {
      throw AssertionError_init_$Create$('A primitive is not a composite');
    } else {
      var tmp_1 = this.get_xmlDescriptor_br8xbx_k$();
      if (tmp_1 instanceof XmlPolymorphicDescriptor) {
        // Inline function 'kotlin.also' call
        var this_1 = new PolymorphicDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.polyInfo_1);
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
        this.tagIdHolder_1 = this_1;
        tmp = this_1;
      } else {
        var tmp_2 = this.get_xmlDescriptor_br8xbx_k$();
        if (tmp_2 instanceof XmlListDescriptor) {
          var tmp_3;
          if (this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().equals(OutputKind_Attribute_getInstance())) {
            // Inline function 'kotlin.also' call
            var this_2 = new AttributeListDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.attrIndex_1);
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
            this.tagIdHolder_1 = this_2;
            tmp_3 = this_2;
          } else if (this.get_xmlDescriptor_br8xbx_k$().get_isListEluded_vahr8a_k$()) {
            // Inline function 'kotlin.also' call
            var this_3 = new AnonymousListDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.polyInfo_1, this.get_typeDiscriminatorName_ksdz44_k$());
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
            this.tagIdHolder_1 = this_3;
            tmp_3 = this_3;
          } else {
            // Inline function 'kotlin.also' call
            var this_4 = new NamedListDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.get_typeDiscriminatorName_ksdz44_k$());
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
            this.tagIdHolder_1 = this_4;
            tmp_3 = this_4;
          }
          tmp = tmp_3;
        } else {
          var tmp_4 = this.get_xmlDescriptor_br8xbx_k$();
          if (tmp_4 instanceof XmlMapDescriptor) {
            var tmp_5;
            if (this.get_xmlDescriptor_br8xbx_k$().get_isListEluded_vahr8a_k$()) {
              // Inline function 'kotlin.also' call
              var this_5 = new AnonymousMapDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.polyInfo_1, this.get_typeDiscriminatorName_ksdz44_k$());
              // Inline function 'kotlin.contracts.contract' call
              // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
              this.tagIdHolder_1 = this_5;
              tmp_5 = this_5;
            } else {
              // Inline function 'kotlin.also' call
              var this_6 = new NamedMapDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.polyInfo_1, this.get_typeDiscriminatorName_ksdz44_k$());
              // Inline function 'kotlin.contracts.contract' call
              // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
              this.tagIdHolder_1 = this_6;
              tmp_5 = this_6;
            }
            tmp = tmp_5;
          } else {
            // Inline function 'kotlin.also' call
            var this_7 = new TagDecoder(this.$this_4, this.get_xmlDescriptor_br8xbx_k$(), this.get_typeDiscriminatorName_ksdz44_k$());
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
            this.tagIdHolder_1 = this_7;
            tmp = this_7;
          }
        }
      }
    }
    var this_8 = tmp;
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.SerialValueDecoder.beginStructure.<anonymous>' call
    var tmp0_iterator = this.ignoredAttributes_1.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var attrName = tmp0_iterator.next_20eer_k$();
      this_8.ignoreAttribute_xcg55t_k$(attrName);
    }
    return this_8;
  };
  function NullDecoder($outer, xmlDescriptor) {
    this.$this_4 = $outer;
    XmlDecoder.call(this, $outer, xmlDescriptor);
  }
  protoOf(NullDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    return false;
  };
  protoOf(NullDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    var tmp = this.get_xmlDescriptor_br8xbx_k$();
    var tmp0_safe_receiver = tmp instanceof XmlValueDescriptor ? tmp : null;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.defaultValue_vqyop3_k$(this.$this_4, deserializer);
    var default_0 = tmp1_elvis_lhs == null ? previousValue : tmp1_elvis_lhs;
    return (default_0 == null ? true : !(default_0 == null)) ? default_0 : THROW_CCE();
  };
  protoOf(NullDecoder).decodeNullableSerializableElement_k2y6ab_k$ = function (descriptor, index, deserializer, previousValue) {
    return null;
  };
  protoOf(NullDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    return this;
  };
  protoOf(NullDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
  };
  protoOf(NullDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    var tmp0_subject = descriptor.get_kind_wop7ml_k$();
    var tmp;
    if (tmp0_subject instanceof MAP) {
      tmp = true;
    } else {
      tmp = tmp0_subject instanceof LIST;
    }
    if (tmp)
      return Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
    else {
      throw AssertionError_init_$Create$('Null objects have no members');
    }
  };
  protoOf(NullDecoder).decodeBooleanElement_vuyhtj_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeByteElement_c1pisz_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeShortElement_pzg12t_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeIntElement_941u6a_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return 0;
  };
  protoOf(NullDecoder).decodeLongElement_994anb_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeFloatElement_p2q55h_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeDoubleElement_isei84_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeCharElement_frbao3_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeStringElement_3oenpg_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  protoOf(NullDecoder).decodeInlineElement_s8883o_k$ = function (descriptor, index) {
    throw AssertionError_init_$Create$('Null objects have no members');
  };
  function TagDecoder($outer, xmlDescriptor, typeDiscriminatorName) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, typeDiscriminatorName);
    this.readTagName_1 = this.get_input_it4gip_k$().get_name_woqyms_k$();
  }
  protoOf(TagDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
    if (!this.decodeElementIndexCalled_1) {
      var index = this.decodeElementIndex_bstkhp_k$(descriptor);
      if (!(index === Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$()))
        throw new XmlSerialException('Unexpected content in end structure');
    }
    this.get_input_it4gip_k$().require_e8zaef_k$(EventType_END_ELEMENT_getInstance(), this.readTagName_1);
  };
  function TagDecoderBase($outer, xmlDescriptor, typeDiscriminatorName) {
    this.$this_2 = $outer;
    XmlTagCodec.call(this, $outer, xmlDescriptor);
    this.typeDiscriminatorName_1 = typeDiscriminatorName;
    this.tagId_1 = null;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.ignoredAttributes_1 = ArrayList_init_$Create$();
    this.preserveWhitespace_1 = xmlDescriptor.get_preserveSpace_4xp4oh_k$();
    this.attrCount_1 = this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_START_ELEMENT_getInstance()) ? this.get_input_it4gip_k$().get_attributeCount_hqf30_k$() : 0;
    this.tagDepth_1 = this.get_input_it4gip_k$().get_depth_iq7qmy_k$();
    this.seenItems_1 = booleanArray(xmlDescriptor.get_elementsCount_288r0x_k$());
    this.nulledItemsIdx_1 = -1;
    this.lastAttrIndex_1 = -1;
    this.currentPolyInfo_1 = null;
    this.otherAttrIndex_1 = getAttrMap(xmlDescriptor);
    this.pendingRecovery_1 = ArrayDeque_init_$Create$();
    this.decodeElementIndexCalled_1 = false;
    // Inline function 'kotlin.collections.mutableMapOf' call
    var polyMap = LinkedHashMap_init_$Create$();
    // Inline function 'kotlin.collections.mutableMapOf' call
    var nameMap = LinkedHashMap_init_$Create$();
    var inductionVariable = 0;
    var last = xmlDescriptor.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var idx = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var child = toNonTransparentChild(xmlDescriptor.getElementDescriptor_ncda77_k$(idx), this);
        var tmp_0;
        if (child instanceof XmlPolymorphicDescriptor) {
          tmp_0 = child.get_isTransparent_hy4yan_k$();
        } else {
          tmp_0 = false;
        }
        if (tmp_0) {
          // Inline function 'kotlin.collections.iterator' call
          var tmp1_iterator = child.get_polyInfo_mizov1_k$().get_entries_p20ztl_k$().iterator_jk1svi_k$();
          while (tmp1_iterator.hasNext_bitz1p_k$()) {
            // Inline function 'kotlin.collections.component2' call
            var childDescriptor = tmp1_iterator.next_20eer_k$().get_value_j01efc_k$();
            var tagName = this.normalize_axto4g_k$(childDescriptor.get_tagName_ocsgis_k$());
            // Inline function 'kotlin.collections.set' call
            var value = new PolyInfo(tagName, idx, childDescriptor);
            polyMap.put_4fpzoq_k$(tagName, value);
          }
        } else {
          // Inline function 'kotlin.collections.set' call
          var key = this.normalize_axto4g_k$(child.get_tagName_ocsgis_k$());
          nameMap.put_4fpzoq_k$(key, idx);
        }
      }
       while (inductionVariable < last);
    this.polyChildren_1 = polyMap;
    this.nameToMembers_1 = nameMap;
  }
  protoOf(TagDecoderBase).get_typeDiscriminatorName_ksdz44_k$ = function () {
    return this.typeDiscriminatorName_1;
  };
  protoOf(TagDecoderBase).set_tagId_71y5un_k$ = function (_set____db54di) {
    this.tagId_1 = _set____db54di;
  };
  protoOf(TagDecoderBase).get_tagId_iyxoh8_k$ = function () {
    return this.tagId_1;
  };
  protoOf(TagDecoderBase).get_attrCount_85ne2d_k$ = function () {
    return this.attrCount_1;
  };
  protoOf(TagDecoderBase).get_lastAttrIndex_v5o3pa_k$ = function () {
    return this.lastAttrIndex_1;
  };
  protoOf(TagDecoderBase).set_currentPolyInfo_2w4e45_k$ = function (_set____db54di) {
    this.currentPolyInfo_1 = _set____db54di;
  };
  protoOf(TagDecoderBase).get_currentPolyInfo_f8z8zu_k$ = function () {
    return this.currentPolyInfo_1;
  };
  protoOf(TagDecoderBase).set_decodeElementIndexCalled_t0ntl5_k$ = function (_set____db54di) {
    this.decodeElementIndexCalled_1 = _set____db54di;
  };
  protoOf(TagDecoderBase).get_decodeElementIndexCalled_ayrkbu_k$ = function () {
    return this.decodeElementIndexCalled_1;
  };
  protoOf(TagDecoderBase).get_input_it4gip_k$ = function () {
    return this.$this_2.input_1;
  };
  protoOf(TagDecoderBase).get_namespaceContext_n7n1ib_k$ = function () {
    return this.get_input_it4gip_k$().get_namespaceContext_n7n1ib_k$();
  };
  protoOf(TagDecoderBase).serialElementDecoder_wyqzby_k$ = function (desc, index, deserializer) {
    var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    var effectiveDeserializer = childXmlDescriptor.effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    var tmp;
    if (this.nulledItemsIdx_1 >= 0) {
      tmp = null;
    } else {
      var tmp_0 = effectiveDeserializer.get_descriptor_wjt6a0_k$().get_kind_wop7ml_k$();
      if (tmp_0 instanceof PrimitiveKind) {
        tmp = new XmlDecoder(this.$this_2, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1);
      } else {
        tmp = new SerialValueDecoder(this.$this_2, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1, null);
      }
    }
    return tmp;
  };
  protoOf(TagDecoderBase).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.handleRecovery' call
    this.$this_2;
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.pendingRecovery_1.isEmpty_y1axqb_k$()) {
      var d = this.pendingRecovery_1.removeFirst_58pi0k_k$();
      if (!(d.get_elementIndex_59wfb5_k$() === index)) {
        throw IllegalStateException_init_$Create$('Recovery state is inconsistent');
      }
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeSerializableElement.<anonymous>' call
      var tmp = d.get_value_j01efc_k$();
      var it = (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
      return (it == null ? true : !(it == null)) ? it : THROW_CCE();
    }
    var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    var effectiveDeserializer = childXmlDescriptor.effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    var tmp_0;
    if (equals(isInterface(effectiveDeserializer, DeserializationStrategy) ? effectiveDeserializer : THROW_CCE(), CompactFragmentSerializer_getInstance())) {
      tmp_0 = getValueChild(this.get_xmlDescriptor_br8xbx_k$()) === index;
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      if (this.nulledItemsIdx_1 >= 0) {
        var tmp_1 = CompactFragment_init_$Create$_0('');
        return !(tmp_1 == null) ? tmp_1 : THROW_CCE();
      }
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeSerializableElement.<anonymous>' call
      var it_0 = siblingsToFragment(this.get_input_it4gip_k$());
      this.get_input_it4gip_k$().pushBackCurrent_culk5k_k$();
      var tmp0_elvis_lhs = it_0 instanceof CompactFragment ? it_0 : null;
      var tmp_2 = tmp0_elvis_lhs == null ? CompactFragment_init_$Create$_1(it_0) : tmp0_elvis_lhs;
      return !(tmp_2 == null) ? tmp_2 : THROW_CCE();
    }
    var tmp_3;
    var tmp_4;
    if (this.lastAttrIndex_1 >= 0) {
      tmp_4 = childXmlDescriptor instanceof XmlAttributeMapDescriptor;
    } else {
      tmp_4 = false;
    }
    if (tmp_4) {
      tmp_3 = new AttributeMapDecoder(this.$this_2, childXmlDescriptor, this.lastAttrIndex_1);
    } else {
      var tmp0_elvis_lhs_0 = this.serialElementDecoder_wyqzby_k$(descriptor, index, effectiveDeserializer);
      tmp_3 = tmp0_elvis_lhs_0 == null ? new NullDecoder(this.$this_2, childXmlDescriptor) : tmp0_elvis_lhs_0;
    }
    var decoder = tmp_3;
    var tmp_5;
    if (effectiveDeserializer instanceof AbstractCollectionSerializer) {
      tmp_5 = effectiveDeserializer.merge_4lx7x7_k$(decoder, previousValue);
    } else {
      tmp_5 = effectiveDeserializer.deserialize_sy6x50_k$(decoder);
    }
    var result = tmp_5;
    var tmp1_safe_receiver = decoder instanceof SerialValueDecoder ? decoder : null;
    var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.tagIdHolder_1;
    var tagId = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_tagId_iyxoh8_k$();
    if (!(tagId == null)) {
      // Inline function 'kotlin.checkNotNull' call
      // Inline function 'kotlin.contracts.contract' call
      $l$block: {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        if (result == null) {
          // Inline function 'kotlin.checkNotNull.<anonymous>' call
          var message = 'Required value was null.';
          throw IllegalStateException_init_$Create$(toString(message));
        } else {
          break $l$block;
        }
      }
      if (!(this.$this_2._idMap_1.put_4fpzoq_k$(tagId, result) == null))
        throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
    }
    this.seenItems_1[index] = true;
    return result;
  };
  protoOf(TagDecoderBase).decodeNullableSerializableElement_k2y6ab_k$ = function (descriptor, index, deserializer, previousValue) {
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.handleRecovery' call
    this.$this_2;
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.pendingRecovery_1.isEmpty_y1axqb_k$()) {
      var d = this.pendingRecovery_1.removeFirst_58pi0k_k$();
      if (!(d.get_elementIndex_59wfb5_k$() === index)) {
        throw IllegalStateException_init_$Create$('Recovery state is inconsistent');
      }
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeNullableSerializableElement.<anonymous>' call
      var tmp = d.get_value_j01efc_k$();
      var it = (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
      return !(it == null) ? it : THROW_CCE();
    }
    if (this.$this_2.hasNullMark_g09bce_k$()) {
      if (!this.get_input_it4gip_k$().nextTag_ujozaf_k$().equals(EventType_END_ELEMENT_getInstance()))
        throw SerializationException_init_$Create$('Elements with nil tags may not have content');
      return null;
    }
    var tmp0_elvis_lhs = this.serialElementDecoder_wyqzby_k$(descriptor, index, deserializer);
    var tmp_0;
    if (tmp0_elvis_lhs == null) {
      return null;
    } else {
      tmp_0 = tmp0_elvis_lhs;
    }
    var decoder = tmp_0;
    var effectiveDeserializer = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index).effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    var tmp_1;
    if (effectiveDeserializer instanceof AbstractCollectionSerializer) {
      tmp_1 = effectiveDeserializer.merge_4lx7x7_k$(decoder, previousValue);
    } else {
      tmp_1 = effectiveDeserializer.deserialize_sy6x50_k$(decoder);
    }
    var result = tmp_1;
    var tmp1_safe_receiver = decoder instanceof SerialValueDecoder ? decoder : null;
    var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.tagIdHolder_1;
    var tagId = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_tagId_iyxoh8_k$();
    if (!(tagId == null)) {
      // Inline function 'kotlin.checkNotNull' call
      // Inline function 'kotlin.contracts.contract' call
      $l$block: {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        if (result == null) {
          // Inline function 'kotlin.checkNotNull.<anonymous>' call
          var message = 'Required value was null.';
          throw IllegalStateException_init_$Create$(toString(message));
        } else {
          break $l$block;
        }
      }
      if (!(this.$this_2._idMap_1.put_4fpzoq_k$(tagId, result) == null))
        throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
    }
    this.seenItems_1[index] = true;
    return result;
  };
  protoOf(TagDecoderBase).decodeInlineElement_s8883o_k$ = function (descriptor, index) {
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.handleRecovery' call
    this.$this_2;
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.pendingRecovery_1.isEmpty_y1axqb_k$()) {
      var d = this.pendingRecovery_1.removeFirst_58pi0k_k$();
      if (!(d.get_elementIndex_59wfb5_k$() === index)) {
        throw IllegalStateException_init_$Create$('Recovery state is inconsistent');
      }
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeInlineElement.<anonymous>' call
      var tmp = d.get_value_j01efc_k$();
      var it = (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
      return new DummyDecoder(it);
    }
    var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    var tmp_0;
    if (descriptor.get_kind_wop7ml_k$() instanceof PrimitiveKind) {
      tmp_0 = new XmlDecoder(this.$this_2, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1);
    } else {
      tmp_0 = new SerialValueDecoder(this.$this_2, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1, this.typeDiscriminatorName_1);
    }
    return tmp_0;
  };
  protoOf(TagDecoderBase).indexOf_rl6bo8_k$ = function (name, inputType) {
    var isNameOfAttr = inputType.equals(InputKind_Attribute_getInstance());
    this.currentPolyInfo_1 = null;
    var polyMap = this.polyChildren_1;
    var nameMap = this.nameToMembers_1;
    var normalizedName = this.normalize_axto4g_k$(name);
    var tmp0_safe_receiver = nameMap.get_wei43m_k$(normalizedName);
    var tmp1_safe_receiver = tmp0_safe_receiver == null ? null : indexOf$checkInputType(tmp0_safe_receiver, inputType, this);
    if (tmp1_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return this.checkRepeatAndOrder_5gld5i_k$(tmp1_safe_receiver, inputType);
    }
    var tmp2_safe_receiver = polyMap.get_wei43m_k$(normalizedName);
    var tmp3_safe_receiver = tmp2_safe_receiver == null ? null : indexOf$checkInputType_0(tmp2_safe_receiver, inputType);
    if (tmp3_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlin.apply' call
      var this_0 = this.checkRepeatAndOrder_5gld5i_k$(tmp3_safe_receiver.index_1, inputType);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.indexOf.<anonymous>.<anonymous>' call
      this.currentPolyInfo_1 = tmp3_safe_receiver;
      return this_0;
    }
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var containingNamespaceUri = this.get_serialName_u2rqhk_k$().getNamespaceURI_665tvr_k$();
    if (isNameOfAttr ? !this.get_config_c0698r_k$().get_policy_i5q4hn_k$().get_isStrictNames_80ezws_k$() : false) {
      // Inline function 'kotlin.text.isEmpty' call
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var this_1 = name.getNamespaceURI_665tvr_k$();
      if (charSequenceLength(this_1) === 0) {
        var attrName = copy_0(normalizedName, containingNamespaceUri);
        var tmp4_safe_receiver = nameMap.get_wei43m_k$(attrName);
        var tmp5_safe_receiver = tmp4_safe_receiver == null ? null : indexOf$checkInputType(tmp4_safe_receiver, inputType, this);
        if (tmp5_safe_receiver == null)
          null;
        else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          return this.checkRepeat_6ljoex_k$(tmp5_safe_receiver);
        }
        var tmp6_safe_receiver = polyMap.get_wei43m_k$(attrName);
        var tmp7_safe_receiver = tmp6_safe_receiver == null ? null : indexOf$checkInputType_0(tmp6_safe_receiver, inputType);
        if (tmp7_safe_receiver == null)
          null;
        else {
          // Inline function 'kotlin.let' call
          // Inline function 'kotlin.contracts.contract' call
          this.currentPolyInfo_1 = tmp7_safe_receiver;
          return this.checkRepeat_6ljoex_k$(tmp7_safe_receiver.index_1);
        }
      }
      // Inline function 'kotlin.text.isEmpty' call
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      var this_2 = name.getPrefix_bu8bd4_k$();
      if (charSequenceLength(this_2) === 0) {
        var emptyNsPrefix = this.get_input_it4gip_k$().getNamespaceURI_859c43_k$('');
        if (!(emptyNsPrefix == null)) {
          var attrName_0 = copy_0(normalizedName, emptyNsPrefix);
          var tmp8_safe_receiver = nameMap.get_wei43m_k$(attrName_0);
          var tmp9_safe_receiver = tmp8_safe_receiver == null ? null : indexOf$checkInputType(tmp8_safe_receiver, inputType, this);
          if (tmp9_safe_receiver == null)
            null;
          else {
            // Inline function 'kotlin.let' call
            // Inline function 'kotlin.contracts.contract' call
            return this.checkRepeat_6ljoex_k$(tmp9_safe_receiver);
          }
          var tmp10_safe_receiver = polyMap.get_wei43m_k$(attrName_0);
          var tmp11_safe_receiver = tmp10_safe_receiver == null ? null : indexOf$checkInputType_0(tmp10_safe_receiver, inputType);
          if (tmp11_safe_receiver == null)
            null;
          else {
            // Inline function 'kotlin.let' call
            // Inline function 'kotlin.contracts.contract' call
            return this.checkRepeat_6ljoex_k$(tmp11_safe_receiver.index_1);
          }
        }
      }
    }
    var tmp;
    var tmp_0;
    if (!this.get_config_c0698r_k$().get_policy_i5q4hn_k$().get_isStrictNames_80ezws_k$()) {
      // Inline function 'kotlin.text.isNotEmpty' call
      tmp_0 = charSequenceLength(containingNamespaceUri) > 0;
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      tmp = containingNamespaceUri === name.getNamespaceURI_665tvr_k$();
    } else {
      tmp = false;
    }
    if (tmp) {
      var tmp12_safe_receiver = nameMap.get_wei43m_k$(QName_init_$Create$(name.getLocalPart_k3cdyw_k$()));
      var tmp13_safe_receiver = tmp12_safe_receiver == null ? null : indexOf$checkInputType(tmp12_safe_receiver, inputType, this);
      if (tmp13_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        return this.checkRepeatAndOrder_5gld5i_k$(tmp13_safe_receiver, inputType);
      }
    }
    var tmp_1;
    if (inputType.equals(InputKind_Attribute_getInstance())) {
      var containsUpper = this.attrCount_1;
      var containsArg = this.lastAttrIndex_1;
      tmp_1 = 0 <= containsArg ? containsArg < containsUpper : false;
    } else {
      tmp_1 = false;
    }
    if (tmp_1) {
      // Inline function 'kotlin.takeIf' call
      var this_3 = this.otherAttrIndex_1;
      // Inline function 'kotlin.contracts.contract' call
      var tmp_2;
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.indexOf.<anonymous>' call
      if (this_3 >= 0) {
        tmp_2 = this_3;
      } else {
        tmp_2 = null;
      }
      var tmp14_safe_receiver = tmp_2;
      if (tmp14_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        return tmp14_safe_receiver;
      }
    } else {
      // Inline function 'kotlin.takeIf' call
      var this_4 = getValueChild(this.get_xmlDescriptor_br8xbx_k$());
      // Inline function 'kotlin.contracts.contract' call
      var tmp_3;
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.indexOf.<anonymous>' call
      if (this_4 >= 0) {
        tmp_3 = this_4;
      } else {
        tmp_3 = null;
      }
      var tmp15_safe_receiver = tmp_3;
      if (tmp15_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        var valChildDesc = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(tmp15_safe_receiver);
        $l$loop: while (true) {
          var tmp_4;
          var tmp_5;
          if (valChildDesc instanceof XmlListDescriptor) {
            tmp_5 = valChildDesc.get_isListEluded_vahr8a_k$();
          } else {
            tmp_5 = false;
          }
          if (tmp_5) {
            tmp_4 = true;
          } else {
            tmp_4 = valChildDesc instanceof XmlInlineDescriptor;
          }
          if (!tmp_4) {
            break $l$loop;
          }
          valChildDesc = valChildDesc.getElementDescriptor_ncda77_k$(0);
        }
        var tmp_6;
        if (equals(valChildDesc.get_serialDescriptor_vvwkac_k$(), CompactFragmentSerializer_getInstance().get_descriptor_wjt6a0_k$())) {
          return this.checkRepeat_6ljoex_k$(tmp15_safe_receiver);
        }
      }
    }
    // Inline function 'kotlin.let' call
    var tmp_7 = this.get_config_c0698r_k$().get_policy_i5q4hn_k$();
    var tmp_8 = this.get_input_it4gip_k$();
    var tmp_9 = this.get_xmlDescriptor_br8xbx_k$();
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(nameMap.get_size_woubt6_k$());
    // Inline function 'kotlin.collections.iterator' call
    var tmp0_iterator = nameMap.get_entries_p20ztl_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.indexOf.<anonymous>' call
      // Inline function 'kotlin.collections.component1' call
      var k = item.get_key_18j28a_k$();
      // Inline function 'kotlin.collections.component2' call
      var v = item.get_value_j01efc_k$();
      var tmp$ret$24 = new PolyInfo(k, v, this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(v));
      destination.add_utx5q5_k$(tmp$ret$24);
    }
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.indexOf.<anonymous>' call
    var it = tmp_7.handleUnknownContentRecovering_6yvbuy_k$(tmp_8, inputType, tmp_9, name, plus_0(destination, polyMap.get_values_ksazhn_k$()));
    var singleParsed = singleOrNull(it);
    if ((singleParsed == null ? null : singleParsed.get_unParsed_m9w53n_k$()) === true) {
      return singleParsed.get_elementIndex_59wfb5_k$();
    }
    this.pendingRecovery_1.addAll_4lagoh_k$(it);
    return Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$();
  };
  protoOf(TagDecoderBase).checkRepeat_6ljoex_k$ = function (_this__u8e3s4) {
    // Inline function 'kotlin.also' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.checkRepeat.<anonymous>' call
    if (_this__u8e3s4 >= 0 ? this.seenItems_1[_this__u8e3s4] : false) {
      var desc = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(_this__u8e3s4);
      var tmp;
      if (!(desc instanceof XmlListLikeDescriptor)) {
        tmp = true;
      } else {
        tmp = !desc.get_isListEluded_vahr8a_k$();
      }
      if (tmp) {
        this.get_config_c0698r_k$().get_policy_i5q4hn_k$().onElementRepeated_an4ewl_k$(this.get_xmlDescriptor_br8xbx_k$(), _this__u8e3s4);
      }
    }
    return _this__u8e3s4;
  };
  protoOf(TagDecoderBase).checkRepeatAndOrder_5gld5i_k$ = function (_this__u8e3s4, inputType) {
    // Inline function 'kotlin.also' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.checkRepeatAndOrder.<anonymous>' call
    this.checkRepeat_6ljoex_k$(_this__u8e3s4);
    if (this.get_config_c0698r_k$().get_policy_i5q4hn_k$().get_verifyElementOrder_ilkdrg_k$() ? inputType.equals(InputKind_Element_getInstance()) : false) {
      var tmp = this.get_xmlDescriptor_br8xbx_k$();
      if (tmp instanceof XmlCompositeDescriptor) {
        var constraints = this.get_xmlDescriptor_br8xbx_k$().get_childConstraints_pm066b_k$();
        // Inline function 'kotlin.collections.isNullOrEmpty' call
        // Inline function 'kotlin.contracts.contract' call
        if (!(constraints == null ? true : constraints.isEmpty_y1axqb_k$())) {
          var orderedBefore = booleanArray(this.seenItems_1.length);
          var orderedAfter = booleanArray(this.seenItems_1.length);
          var tmp0_iterator = constraints.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var tmp1_loop_parameter = tmp0_iterator.next_20eer_k$();
            var before = tmp1_loop_parameter.component1_7eebsc_k$();
            var after = tmp1_loop_parameter.component2_7eebsb_k$();
            if (before === Companion_getInstance_11().get_OTHERS_23qess_k$()) {
              orderedAfter[after] = true;
            }
            if (after === Companion_getInstance_11().get_OTHERS_23qess_k$()) {
              orderedBefore[before] = true;
            }
          }
          var tmp2_iterator = constraints.iterator_jk1svi_k$();
          while (tmp2_iterator.hasNext_bitz1p_k$()) {
            var tmp3_loop_parameter = tmp2_iterator.next_20eer_k$();
            var before_0 = tmp3_loop_parameter.component1_7eebsc_k$();
            var after_0 = tmp3_loop_parameter.component2_7eebsb_k$();
            if (before_0 === _this__u8e3s4) {
              if (after_0 === Companion_getInstance_11().get_OTHERS_23qess_k$()) {
                var tmp$ret$2;
                $l$block: {
                  // Inline function 'kotlin.collections.indexOfFirst' call
                  var index = 0;
                  var tmp0_iterator_0 = get_indices(this.seenItems_1).iterator_jk1svi_k$();
                  while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
                    var item = tmp0_iterator_0.next_20eer_k$();
                    checkIndexOverflow(index);
                    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.checkRepeatAndOrder.<anonymous>.<anonymous>' call
                    if ((this.seenItems_1[item] ? this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(item).get_effectiveOutputKind_uvd9nx_k$().equals(OutputKind_Element_getInstance()) : false) ? !orderedBefore[item] : false) {
                      tmp$ret$2 = index;
                      break $l$block;
                    }
                    index = index + 1 | 0;
                  }
                  tmp$ret$2 = -1;
                }
                var seenSiblingIndex = tmp$ret$2;
                if (seenSiblingIndex >= 0) {
                  throw new XmlSerialException('Found element ' + this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(seenSiblingIndex).get_tagName_ocsgis_k$() + ' before ' + this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(_this__u8e3s4).get_tagName_ocsgis_k$() + ' in conflict with ordering constraints');
                }
              } else if (this.seenItems_1[after_0]) {
                throw new XmlSerialException('Found element ' + this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(after_0).get_tagName_ocsgis_k$() + ' before ' + this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(_this__u8e3s4).get_tagName_ocsgis_k$() + ' in conflict with ordering constraints');
              }
            }
            if (!orderedAfter[_this__u8e3s4]) {
              var tmp$ret$4;
              $l$block_0: {
                // Inline function 'kotlin.collections.indexOfFirst' call
                var index_0 = 0;
                var tmp0_iterator_1 = get_indices(this.seenItems_1).iterator_jk1svi_k$();
                while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
                  var item_0 = tmp0_iterator_1.next_20eer_k$();
                  checkIndexOverflow(index_0);
                  // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.checkRepeatAndOrder.<anonymous>.<anonymous>' call
                  if (this.seenItems_1[item_0] ? orderedAfter[item_0] : false) {
                    tmp$ret$4 = index_0;
                    break $l$block_0;
                  }
                  index_0 = index_0 + 1 | 0;
                }
                tmp$ret$4 = -1;
              }
              var alreadySeenTrailingIndex = tmp$ret$4;
              if (alreadySeenTrailingIndex > 0) {
                throw new XmlSerialException('Found element ' + this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(_this__u8e3s4).get_tagName_ocsgis_k$() + ' after ' + this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(alreadySeenTrailingIndex) + ' in conflict with ordering constraints');
              }
            }
          }
        }
      }
    }
    return _this__u8e3s4;
  };
  protoOf(TagDecoderBase).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    if (!this.decodeElementIndexCalled_1 ? this.get_input_it4gip_k$().get_depth_iq7qmy_k$() < this.tagDepth_1 : false) {
      return Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
    }
    this.decodeElementIndexCalled_1 = true;
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.pendingRecovery_1.isEmpty_y1axqb_k$()) {
      return this.pendingRecovery_1.first_1m0hio_k$().get_elementIndex_59wfb5_k$();
    }
    if (this.nulledItemsIdx_1 >= 0) {
      this.get_input_it4gip_k$().require_e8zaef_k$(EventType_END_ELEMENT_getInstance(), this.get_xmlDescriptor_br8xbx_k$().get_tagName_ocsgis_k$());
      if (this.nulledItemsIdx_1 >= this.seenItems_1.length)
        return Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
      // Inline function 'kotlin.also' call
      var this_0 = this.nulledItemsIdx_1;
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
      nextNulledItemsIdx(this);
      return this_0;
    }
    this.lastAttrIndex_1 = this.lastAttrIndex_1 + 1 | 0;
    $l$loop: while (true) {
      var tmp;
      var containsUpper = this.attrCount_1;
      var containsArg = this.lastAttrIndex_1;
      if (0 <= containsArg ? containsArg < containsUpper : false) {
        var tmp$ret$2;
        $l$block_0: {
          // Inline function 'kotlin.collections.any' call
          var this_1 = this.ignoredAttributes_1;
          var tmp_0;
          if (isInterface(this_1, Collection)) {
            tmp_0 = this_1.isEmpty_y1axqb_k$();
          } else {
            tmp_0 = false;
          }
          if (tmp_0) {
            tmp$ret$2 = false;
            break $l$block_0;
          }
          var tmp0_iterator = this_1.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var element = tmp0_iterator.next_20eer_k$();
            // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
            if (isEquivalent(element, this.get_input_it4gip_k$().getAttributeName_q93fq1_k$(this.lastAttrIndex_1))) {
              tmp$ret$2 = true;
              break $l$block_0;
            }
          }
          tmp$ret$2 = false;
        }
        tmp = tmp$ret$2;
      } else {
        tmp = false;
      }
      if (!tmp) {
        break $l$loop;
      }
      this.lastAttrIndex_1 = this.lastAttrIndex_1 + 1 | 0;
    }
    var containsUpper_0 = this.attrCount_1;
    var containsArg_0 = this.lastAttrIndex_1;
    if (0 <= containsArg_0 ? containsArg_0 < containsUpper_0 : false) {
      var name = this.get_input_it4gip_k$().getAttributeName_q93fq1_k$(this.lastAttrIndex_1);
      var tmp_1;
      var tmp_2;
      if (name.equals(this.typeDiscriminatorName_1) ? true : name.getNamespaceURI_665tvr_k$() === XMLConstants_getInstance().get_XMLNS_ATTRIBUTE_NS_URI_xtsf1b_k$()) {
        tmp_2 = true;
      } else {
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        tmp_2 = name.getPrefix_bu8bd4_k$() === XMLConstants_getInstance().get_XMLNS_ATTRIBUTE_883gnk_k$();
      }
      if (tmp_2) {
        tmp_1 = true;
      } else {
        var tmp_3;
        // Inline function 'kotlin.text.isEmpty' call
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        var this_2 = name.getPrefix_bu8bd4_k$();
        if (charSequenceLength(this_2) === 0) {
          // Inline function 'nl.adaptivity.xmlutil.localPart' call
          tmp_3 = name.getLocalPart_k3cdyw_k$() === XMLConstants_getInstance().get_XMLNS_ATTRIBUTE_883gnk_k$();
        } else {
          tmp_3 = false;
        }
        tmp_1 = tmp_3;
      }
      if (tmp_1) {
        return this.decodeElementIndex_bstkhp_k$(descriptor);
      } else {
        var tmp_4;
        if (name.getNamespaceURI_665tvr_k$() === XMLConstants_getInstance().get_XML_NS_URI_kvobz7_k$()) {
          // Inline function 'nl.adaptivity.xmlutil.localPart' call
          tmp_4 = name.getLocalPart_k3cdyw_k$() === 'space';
        } else {
          tmp_4 = false;
        }
        if (tmp_4) {
          var tmp3_subject = this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(this.lastAttrIndex_1);
          if (tmp3_subject === 'preserve')
            this.preserveWhitespace_1 = true;
          else if (tmp3_subject === 'default')
            this.preserveWhitespace_1 = this.get_xmlDescriptor_br8xbx_k$().get_preserveSpace_4xp4oh_k$();
          var tmp4_safe_receiver = this.nameToMembers_1.get_wei43m_k$(name);
          var tmp_5;
          if (tmp4_safe_receiver == null) {
            tmp_5 = null;
          } else {
            // Inline function 'kotlin.also' call
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
            this.seenItems_1[tmp4_safe_receiver] = true;
            tmp_5 = tmp4_safe_receiver;
          }
          var tmp5_elvis_lhs = tmp_5;
          return tmp5_elvis_lhs == null ? this.decodeElementIndex_bstkhp_k$(descriptor) : tmp5_elvis_lhs;
        }
      }
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.markSeenOrHandleUnknown' call
      this.$this_2;
      var this_3 = this.indexOf_rl6bo8_k$(name, InputKind_Attribute_getInstance());
      var tmp_6;
      if (this_3 === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$()) {
        // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
        tmp_6 = this.decodeElementIndex_bstkhp_k$(descriptor);
      } else {
        this.seenItems_1[this_3] = true;
        tmp_6 = this_3;
      }
      return tmp_6;
    }
    this.lastAttrIndex_1 = IntCompanionObject_getInstance().get_MIN_VALUE_7nmmor_k$();
    // Inline function 'kotlin.collections.iterator' call
    var tmp6_iterator = this.get_input_it4gip_k$();
    while (tmp6_iterator.hasNext_bitz1p_k$()) {
      var eventType = tmp6_iterator.next_20eer_k$();
      switch (eventType.get_ordinal_ip24qg_k$()) {
        case 2:
          return this.readElementEnd_wdsioc_k$(descriptor);
        case 0:
        case 3:
        case 6:
        case 11:
          break;
        case 8:
        case 5:
        case 9:
        case 4:
          var valueChild = getValueChild_0(descriptor);
          if (this.get_input_it4gip_k$().isWhitespace_ujiz09_k$()) {
            if (!(valueChild === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$()) ? this.preserveWhitespace_1 : false) {
              var valueKind = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(valueChild).get_kind_wop7ml_k$();
              if (equals(valueKind, LIST_getInstance()) ? true : equals(valueKind, STRING_getInstance())) {
                this.seenItems_1[valueChild] = true;
                return valueChild;
              }
            }
          } else if (!this.get_input_it4gip_k$().isWhitespace_ujiz09_k$()) {
            // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.markSeenOrHandleUnknown' call
            this.$this_2;
            var tmp_7;
            if (valueChild === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$()) {
              // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
              // Inline function 'kotlin.let' call
              // Inline function 'kotlin.contracts.contract' call
              // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>.<anonymous>' call
              var it = this.get_config_c0698r_k$().get_policy_i5q4hn_k$().handleUnknownContentRecovering_6yvbuy_k$(this.get_input_it4gip_k$(), InputKind_Text_getInstance(), this.get_xmlDescriptor_br8xbx_k$(), QName_init_$Create$('<CDATA>'), emptyList());
              this.pendingRecovery_1.addAll_4lagoh_k$(it);
              tmp_7 = this.decodeElementIndex_bstkhp_k$(descriptor);
            } else {
              this.seenItems_1[valueChild] = true;
              tmp_7 = valueChild;
            }
            return tmp_7;
          }

          break;
        case 10:
          // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.markSeenOrHandleUnknown' call

          this.$this_2;
          var this_4 = this.indexOf_rl6bo8_k$(this.get_input_it4gip_k$().get_name_woqyms_k$(), InputKind_Attribute_getInstance());
          var tmp_8;
          if (this_4 === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$()) {
            // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
            tmp_8 = this.decodeElementIndex_bstkhp_k$(descriptor);
          } else {
            this.seenItems_1[this_4] = true;
            tmp_8 = this_4;
          }

          return tmp_8;
        case 1:
          var i = this.indexOf_rl6bo8_k$(this.get_input_it4gip_k$().get_name_woqyms_k$(), InputKind_Element_getInstance());
          if (i === Companion_getInstance_0().get_UNKNOWN_NAME_lj8hxl_k$()) {
            // Inline function 'kotlin.collections.isNotEmpty' call
            if (!this.pendingRecovery_1.isEmpty_y1axqb_k$()) {
              return this.pendingRecovery_1.first_1m0hio_k$().get_elementIndex_59wfb5_k$();
            }
            elementContentToFragment(this.get_input_it4gip_k$());
          } else {
            // Inline function 'kotlin.also' call
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeElementIndex.<anonymous>' call
            this.seenItems_1[i] = true;
            return i;
          }

          break;
        case 7:
          throw new XmlSerialException('End document in unexpected location');
      }
    }
    return Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
  };
  protoOf(TagDecoderBase).endStructure_1xqz0n_k$ = function (descriptor) {
    if (!this.decodeElementIndexCalled_1) {
      var index = this.decodeElementIndex_bstkhp_k$(descriptor);
      if (!(index === Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$()))
        throw new XmlSerialException('Unexpected content in end structure');
    }
    if (this.typeDiscriminatorName_1 == null) {
      this.get_input_it4gip_k$().require_e8zaef_k$(EventType_END_ELEMENT_getInstance(), this.get_serialName_u2rqhk_k$());
    } else {
      this.get_input_it4gip_k$().require_e8zaef_k$(EventType_END_ELEMENT_getInstance(), null);
    }
  };
  protoOf(TagDecoderBase).readElementEnd_wdsioc_k$ = function (desc) {
    nextNulledItemsIdx(this);
    return this.nulledItemsIdx_1 < this.seenItems_1.length ? this.nulledItemsIdx_1 : Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
  };
  protoOf(TagDecoderBase).doReadAttribute_w5psm5_k$ = function (lastAttrIndex) {
    return this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(this.lastAttrIndex_1);
  };
  protoOf(TagDecoderBase).decodeStringElement_3oenpg_k$ = function (descriptor, index) {
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.handleRecovery' call
    this.$this_2;
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.pendingRecovery_1.isEmpty_y1axqb_k$()) {
      var d = this.pendingRecovery_1.removeFirst_58pi0k_k$();
      if (!(d.get_elementIndex_59wfb5_k$() === index)) {
        throw IllegalStateException_init_$Create$('Recovery state is inconsistent');
      }
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeStringElement.<anonymous>' call
      var tmp = d.get_value_j01efc_k$();
      return (!(tmp == null) ? typeof tmp === 'string' : false) ? tmp : THROW_CCE();
    }
    var childDesc = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    this.seenItems_1[index] = true;
    var isAttribute = this.lastAttrIndex_1 >= 0;
    if (isAttribute) {
      var a = this.doReadAttribute_w5psm5_k$(this.lastAttrIndex_1);
      if (this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index).get_isIdAttr_umav5r_k$()) {
        this.set_tagId_71y5un_k$(a);
      }
      return a;
    } else if (this.nulledItemsIdx_1 >= 0) {
      var tmp0_safe_receiver = childDesc instanceof XmlValueDescriptor ? childDesc : null;
      var default_0 = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_default_qtagd4_k$();
      var tmp_0;
      if (!(default_0 == null)) {
        tmp_0 = default_0;
      } else if (index === getValueChild(this.get_xmlDescriptor_br8xbx_k$())) {
        tmp_0 = '';
      } else {
        throw new XmlSerialException('Missing child ' + descriptor.getElementName_u4sqmf_k$(index) + ':' + index);
      }
      return tmp_0;
    }
    var tmp_1;
    switch (childDesc.get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$()) {
      case 4:
        throw new XmlSerialException('Inline elements can not be directly decoded');
      case 0:
        tmp_1 = readSimpleElement(this.get_input_it4gip_k$());
        break;
      case 3:
      case 2:
        // Inline function 'kotlin.also' call

        var this_0 = allConsecutiveTextContent(this.get_input_it4gip_k$());
        // Inline function 'kotlin.contracts.contract' call

        // Inline function 'nl.adaptivity.xmlutil.serialization.TagDecoderBase.decodeStringElement.<anonymous>' call

        var peek = this.get_input_it4gip_k$().peek_21nx7_k$();
        if (!(peek instanceof EndElementEvent)) {
          throw new XmlSerialException('Missing end tag after text only content (found: ' + peek + ')');
        } else {
          var tmp_2 = peek.get_localName_bf4zrn_k$();
          // Inline function 'nl.adaptivity.xmlutil.localPart' call
          if (!(tmp_2 === this.get_serialName_u2rqhk_k$().getLocalPart_k3cdyw_k$())) {
            // Inline function 'nl.adaptivity.xmlutil.localPart' call
            var tmp$ret$2 = this.get_serialName_u2rqhk_k$().getLocalPart_k3cdyw_k$();
            throw new XmlSerialException('Expected end tag local name ' + tmp$ret$2 + ', found ' + peek.get_localName_bf4zrn_k$());
          }
        }

        tmp_1 = this_0;
        break;
      case 1:
        var message = 'Attributes should already be read now';
        throw IllegalStateException_init_$Create$(toString(message));
      default:
        noWhenBranchMatchedException();
        break;
    }
    return tmp_1;
  };
  protoOf(TagDecoderBase).decodeIntElement_941u6a_k$ = function (descriptor, index) {
    return toInt(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).decodeBooleanElement_vuyhtj_k$ = function (descriptor, index) {
    return toBoolean(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).decodeByteElement_c1pisz_k$ = function (descriptor, index) {
    return toByte(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).decodeShortElement_pzg12t_k$ = function (descriptor, index) {
    return toShort(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).decodeLongElement_994anb_k$ = function (descriptor, index) {
    return toLong(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).decodeFloatElement_p2q55h_k$ = function (descriptor, index) {
    // Inline function 'kotlin.text.toFloat' call
    var this_0 = this.decodeStringElement_3oenpg_k$(descriptor, index);
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return toDouble(this_0);
  };
  protoOf(TagDecoderBase).decodeDoubleElement_isei84_k$ = function (descriptor, index) {
    return toDouble(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).decodeCharElement_frbao3_k$ = function (descriptor, index) {
    return single_0(this.decodeStringElement_3oenpg_k$(descriptor, index));
  };
  protoOf(TagDecoderBase).ignoreAttribute_xcg55t_k$ = function (attrName) {
    this.ignoredAttributes_1.add_utx5q5_k$(attrName);
  };
  function AttributeMapDecoder($outer, xmlDescriptor, attrIndex) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, null);
    this.attrIndex_1 = attrIndex;
    this.correctStartIndex_1 = -1;
    this.nextIndex_1 = 0;
  }
  protoOf(AttributeMapDecoder).get_attrIndex_88x5tk_k$ = function () {
    return this.attrIndex_1;
  };
  protoOf(AttributeMapDecoder).set_correctStartIndex_8a1g5x_k$ = function (_set____db54di) {
    this.correctStartIndex_1 = _set____db54di;
  };
  protoOf(AttributeMapDecoder).get_correctStartIndex_chj66n_k$ = function () {
    return this.correctStartIndex_1;
  };
  protoOf(AttributeMapDecoder).set_nextIndex_orlz96_k$ = function (_set____db54di) {
    this.nextIndex_1 = _set____db54di;
  };
  protoOf(AttributeMapDecoder).get_nextIndex_sb0r1y_k$ = function () {
    return this.nextIndex_1;
  };
  protoOf(AttributeMapDecoder).decodeSequentially_xlblqy_k$ = function () {
    return true;
  };
  protoOf(AttributeMapDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return 1;
  };
  protoOf(AttributeMapDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    var tmp;
    switch (this.nextIndex_1) {
      case 0:
      case 1:
        var tmp2 = this.nextIndex_1;
        this.nextIndex_1 = tmp2 + 1 | 0;
        tmp = tmp2;
        break;
      default:
        tmp = Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
        break;
    }
    return tmp;
  };
  protoOf(AttributeMapDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    if (this.correctStartIndex_1 < 0)
      this.correctStartIndex_1 = index;
    var fixedIndex = (index - this.correctStartIndex_1 | 0) % 2 | 0;
    var effectiveDeserializer = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(fixedIndex).effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    if (fixedIndex === 0) {
      if (equals(effectiveDeserializer, XmlQNameSerializer_getInstance())) {
        var tmp = this.get_input_it4gip_k$().getAttributeName_q93fq1_k$(this.attrIndex_1);
        return !(tmp == null) ? tmp : THROW_CCE();
      }
    }
    return effectiveDeserializer.deserialize_sy6x50_k$(new StringDecoder(this.$this_3, this.get_xmlDescriptor_br8xbx_k$().get_valueDescriptor_j2bi95_k$(), xmlCollapseWhitespace(this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(this.attrIndex_1))));
  };
  protoOf(AttributeMapDecoder).decodeStringElement_3oenpg_k$ = function (descriptor, index) {
    var tmp;
    if ((index % 2 | 0) === 0) {
      var name = this.get_input_it4gip_k$().getAttributeName_q93fq1_k$(this.attrIndex_1);
      var tmp_0;
      var tmp_1;
      // Inline function 'kotlin.text.isEmpty' call
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      var this_0 = name.getPrefix_bu8bd4_k$();
      if (charSequenceLength(this_0) === 0) {
        tmp_1 = true;
      } else {
        // Inline function 'kotlin.text.isEmpty' call
        // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
        var this_1 = name.getNamespaceURI_665tvr_k$();
        tmp_1 = charSequenceLength(this_1) === 0;
      }
      if (tmp_1) {
        // Inline function 'nl.adaptivity.xmlutil.localPart' call
        tmp_0 = name.getLocalPart_k3cdyw_k$();
      } else {
        throw new XmlSerialException('A QName in a namespace cannot be converted to a string');
      }
      tmp = tmp_0;
    } else {
      tmp = this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(this.attrIndex_1);
    }
    return tmp;
  };
  protoOf(AttributeMapDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
  };
  protoOf(AttributeMapDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    return this;
  };
  protoOf(AttributeMapDecoder).decodeBoolean_m0aca_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeByte_jzz7je_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeChar_dcmcfa_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeDouble_ur8l0f_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeEnum_slg6lu_k$ = function (enumDescriptor) {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeFloat_jcnrwu_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeInline_ux3vza_k$ = function (descriptor) {
    return this;
  };
  protoOf(AttributeMapDecoder).decodeInt_8iq8f5_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeLong_jzt186_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeNull_jzrmuj_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeShort_jjqk32_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  protoOf(AttributeMapDecoder).decodeString_x3hxsx_k$ = function () {
    throw UnsupportedOperationException_init_$Create$('Expect map structure');
  };
  function AttributeListDecoder($outer, xmlDescriptor, attrIndex) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, null);
    this.listIndex_1 = 0;
    this.attrValues_1 = split(xmlCollapseWhitespace(this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(attrIndex)), xmlDescriptor.get_delimiters_6jqjhn_k$().slice());
  }
  protoOf(AttributeListDecoder).decodeSequentially_xlblqy_k$ = function () {
    return true;
  };
  protoOf(AttributeListDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return this.attrValues_1.get_size_woubt6_k$();
  };
  protoOf(AttributeListDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    var tmp = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    var tmp1 = this.listIndex_1;
    this.listIndex_1 = tmp1 + 1 | 0;
    var decoder = new StringDecoder(this.$this_3, tmp, this.attrValues_1.get_c1px32_k$(tmp1));
    return decoder.decodeSerializableValue_xpnpad_k$(deserializer);
  };
  protoOf(AttributeListDecoder).decodeStringElement_3oenpg_k$ = function (descriptor, index) {
    var tmp1 = this.listIndex_1;
    this.listIndex_1 = tmp1 + 1 | 0;
    return this.attrValues_1.get_c1px32_k$(tmp1);
  };
  protoOf(AttributeListDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
  };
  function AnonymousListDecoder($outer, xmlDescriptor, polyInfo, typeDiscriminatorName) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, typeDiscriminatorName);
    this.polyInfo_1 = polyInfo;
    var tmp = this;
    var tmp$ret$2;
    $l$block_0: {
      // Inline function 'kotlin.collections.firstOrNull' call
      var tmp0_iterator = until(0, _get_parentXmlDescriptor__yo818r(this).get_elementsCount_288r0x_k$()).iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'nl.adaptivity.xmlutil.serialization.AnonymousListDecoder.listChildIdx.<anonymous>' call
        var tmp$ret$0;
        $l$block: {
          // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
          var tmp0_iterator_0 = _get_parentXmlDescriptor__yo818r(this).get_serialDescriptor_vvwkac_k$().getElementAnnotations_omrjs6_k$(element).iterator_jk1svi_k$();
          while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
            var e = tmp0_iterator_0.next_20eer_k$();
            if (e instanceof XmlValue) {
              tmp$ret$0 = e;
              break $l$block;
            }
          }
          tmp$ret$0 = null;
        }
        var tmp0_safe_receiver = tmp$ret$0;
        if ((tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_value_j01efc_k$()) === true) {
          tmp$ret$2 = element;
          break $l$block_0;
        }
      }
      tmp$ret$2 = null;
    }
    var tmp0_elvis_lhs = tmp$ret$2;
    tmp.listChildIdx_1 = tmp0_elvis_lhs == null ? -1 : tmp0_elvis_lhs;
    this.finished_1 = false;
  }
  protoOf(AnonymousListDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    var tmp;
    if (this.finished_1) {
      tmp = Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
    } else {
      this.finished_1 = true;
      tmp = 0;
    }
    return tmp;
  };
  protoOf(AnonymousListDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    var effectiveDeserializer = childXmlDescriptor.effectiveDeserializationStrategy_ko8gvi_k$(deserializer);
    var tmp;
    if (equals(isInterface(effectiveDeserializer, DeserializationStrategy) ? effectiveDeserializer : THROW_CCE(), CompactFragmentSerializer_getInstance())) {
      tmp = getValueChild(_get_parentXmlDescriptor__yo818r(this)) === this.listChildIdx_1;
    } else {
      tmp = false;
    }
    if (tmp) {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.AnonymousListDecoder.decodeSerializableElement.<anonymous>' call
      var it = elementToFragment(this.get_input_it4gip_k$());
      var tmp0_elvis_lhs = it instanceof CompactFragment ? it : null;
      var tmp_0 = tmp0_elvis_lhs == null ? CompactFragment_init_$Create$_1(it) : tmp0_elvis_lhs;
      return !(tmp_0 == null) ? tmp_0 : THROW_CCE();
    }
    var decoder = new SerialValueDecoder(this.$this_3, childXmlDescriptor, this.polyInfo_1, IntCompanionObject_getInstance().get_MIN_VALUE_7nmmor_k$(), this.typeDiscriminatorName_1);
    var result = deserializer.deserialize_sy6x50_k$(decoder);
    var tmp0_safe_receiver = decoder instanceof SerialValueDecoder ? decoder : null;
    var tmp1_safe_receiver = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.tagIdHolder_1;
    var tagId = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_tagId_iyxoh8_k$();
    if (!(tagId == null)) {
      // Inline function 'kotlin.checkNotNull' call
      // Inline function 'kotlin.contracts.contract' call
      $l$block: {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        if (result == null) {
          // Inline function 'kotlin.checkNotNull.<anonymous>' call
          var message = 'Required value was null.';
          throw IllegalStateException_init_$Create$(toString(message));
        } else {
          break $l$block;
        }
      }
      if (!(this.$this_3._idMap_1.put_4fpzoq_k$(tagId, result) == null))
        throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
    }
    return result;
  };
  protoOf(AnonymousListDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
  };
  protoOf(AnonymousListDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return 1;
  };
  function NamedListDecoder($outer, xmlDescriptor, typeDiscriminatorName) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, typeDiscriminatorName);
    this.childCount_1 = 0;
  }
  protoOf(NamedListDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    this.decodeElementIndexCalled_1 = true;
    var tmp;
    if (this.get_input_it4gip_k$().nextTag_ujozaf_k$().get_ordinal_ip24qg_k$() === 2) {
      tmp = Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
    } else {
      var tmp2 = this.childCount_1;
      this.childCount_1 = tmp2 + 1 | 0;
      tmp = tmp2;
    }
    return tmp;
  };
  protoOf(NamedListDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    var decoder = new SerialValueDecoder(this.$this_3, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1, null);
    var tmp;
    if (deserializer instanceof AbstractCollectionSerializer) {
      tmp = deserializer.merge_4lx7x7_k$(decoder, previousValue);
    } else {
      tmp = deserializer.deserialize_sy6x50_k$(decoder);
    }
    var result = tmp;
    var tmp1_safe_receiver = decoder instanceof SerialValueDecoder ? decoder : null;
    var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.tagIdHolder_1;
    var tagId = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_tagId_iyxoh8_k$();
    if (!(tagId == null)) {
      // Inline function 'kotlin.checkNotNull' call
      // Inline function 'kotlin.contracts.contract' call
      $l$block: {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        if (result == null) {
          // Inline function 'kotlin.checkNotNull.<anonymous>' call
          var message = 'Required value was null.';
          throw IllegalStateException_init_$Create$(toString(message));
        } else {
          break $l$block;
        }
      }
      if (!(this.$this_3._idMap_1.put_4fpzoq_k$(tagId, result) == null))
        throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
    }
    return result;
  };
  function MapDecoderBase($outer, xmlDescriptor, polyInfo, typeDiscriminatorName) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, typeDiscriminatorName);
    this.polyInfo_1 = polyInfo;
    this.lastIndex_1 = -1;
  }
  protoOf(MapDecoderBase).set_lastIndex_mit0mh_k$ = function (_set____db54di) {
    this.lastIndex_1 = _set____db54di;
  };
  protoOf(MapDecoderBase).get_lastIndex_tk4gr1_k$ = function () {
    return this.lastIndex_1;
  };
  protoOf(MapDecoderBase).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    this.lastIndex_1 = index;
    var keyDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    if ((index % 2 | 0) === 0) {
      if (keyDescriptor.get_effectiveOutputKind_uvd9nx_k$().equals(OutputKind_Attribute_getInstance())) {
        var tmp0_elvis_lhs = this.get_input_it4gip_k$().getAttributeValue_j0o48g_k$(keyDescriptor.get_tagName_ocsgis_k$());
        var tmp;
        if (tmp0_elvis_lhs == null) {
          throw new XmlSerialException('Missing key attribute (' + keyDescriptor.get_tagName_ocsgis_k$() + ') on ' + this.get_input_it4gip_k$().get_name_woqyms_k$() + '@' + this.get_input_it4gip_k$().get_locationInfo_3kny30_k$());
        } else {
          tmp = tmp0_elvis_lhs;
        }
        var key = tmp;
        return deserializer.deserialize_sy6x50_k$(new StringDecoder(this.$this_3, keyDescriptor, key));
      } else {
        assert(!this.get_xmlDescriptor_br8xbx_k$().get_isValueCollapsed_3vm2k9_k$());
        // Inline function 'kotlin.check' call
        // Inline function 'kotlin.contracts.contract' call
        if (!isEquivalent(this.get_input_it4gip_k$().get_name_woqyms_k$(), keyDescriptor.get_tagName_ocsgis_k$())) {
          // Inline function 'nl.adaptivity.xmlutil.serialization.MapDecoderBase.decodeSerializableElement.<anonymous>' call
          var message = '' + this.get_input_it4gip_k$().get_name_woqyms_k$() + ' != ' + this.get_xmlDescriptor_br8xbx_k$().get_entryName_l031w_k$();
          throw IllegalStateException_init_$Create$(toString(message));
        }
        return protoOf(TagDecoderBase).decodeSerializableElement_uahnnv_k$.call(this, descriptor, index % 2 | 0, deserializer, previousValue);
      }
    }
    var valueDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(1);
    var decoder = new SerialValueDecoder(this.$this_3, valueDescriptor, this.polyInfo_1, IntCompanionObject_getInstance().get_MIN_VALUE_7nmmor_k$(), this.typeDiscriminatorName_1);
    if (this.get_xmlDescriptor_br8xbx_k$().get_isValueCollapsed_3vm2k9_k$()) {
      decoder.ignoreAttribute_xcg55t_k$(keyDescriptor.get_tagName_ocsgis_k$());
    }
    var result = deserializer.deserialize_sy6x50_k$(decoder);
    var tmp1_safe_receiver = decoder instanceof SerialValueDecoder ? decoder : null;
    var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.tagIdHolder_1;
    var tagId = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_tagId_iyxoh8_k$();
    if (!(tagId == null)) {
      // Inline function 'kotlin.checkNotNull' call
      // Inline function 'kotlin.contracts.contract' call
      $l$block: {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        if (result == null) {
          // Inline function 'kotlin.checkNotNull.<anonymous>' call
          var message_0 = 'Required value was null.';
          throw IllegalStateException_init_$Create$(toString(message_0));
        } else {
          break $l$block;
        }
      }
      if (!(this.$this_3._idMap_1.put_4fpzoq_k$(tagId, result) == null))
        throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
    }
    return result;
  };
  function AnonymousMapDecoder($outer, xmlDescriptor, polyInfo, typeDiscriminatorName) {
    this.$this_4 = $outer;
    MapDecoderBase.call(this, $outer, xmlDescriptor, polyInfo, typeDiscriminatorName);
  }
  protoOf(AnonymousMapDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isValueCollapsed_3vm2k9_k$()) {
      if (this.lastIndex_1 < 0) {
        // Inline function 'kotlin.check' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'kotlin.check' call
        // Inline function 'kotlin.contracts.contract' call
        if (!this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_START_ELEMENT_getInstance())) {
          // Inline function 'kotlin.check.<anonymous>' call
          var message = 'Check failed.';
          throw IllegalStateException_init_$Create$(toString(message));
        }
        if (!isEquivalent(this.get_xmlDescriptor_br8xbx_k$().get_entryName_l031w_k$(), this.get_input_it4gip_k$().get_name_woqyms_k$()))
          throw new XmlSerialException('Map entry not found. Found ' + this.get_input_it4gip_k$().get_name_woqyms_k$() + '@' + this.get_input_it4gip_k$().get_locationInfo_3kny30_k$() + ' instead');
      }
      if ((this.lastIndex_1 % 2 | 0) === 0) {
        var tmp = isEquivalent(this.get_xmlDescriptor_br8xbx_k$().get_entryName_l031w_k$(), this.get_input_it4gip_k$().get_name_woqyms_k$());
        assert_0(tmp, XmlDecoderBase$AnonymousMapDecoder$decodeElementIndex$lambda(this));
      }
      var rawIndex = protoOf(MapDecoderBase).decodeElementIndex_bstkhp_k$.call(this, descriptor);
      if (rawIndex < 0)
        return rawIndex;
      this.lastIndex_1 = (this.lastIndex_1 - (this.lastIndex_1 % 2 | 0) | 0) + (rawIndex % 2 | 0) | 0;
      return this.lastIndex_1;
    } else {
      var tmp_0;
      if (this.lastIndex_1 >= 0 ? (this.lastIndex_1 % 2 | 0) === 1 : false) {
        tmp_0 = Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
      } else {
        this.lastIndex_1 = this.lastIndex_1 + 1 | 0;
        tmp_0 = this.lastIndex_1;
      }
      return tmp_0;
    }
  };
  protoOf(AnonymousMapDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isValueCollapsed_3vm2k9_k$()) {
      // Inline function 'kotlin.check' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlin.check' call
      // Inline function 'kotlin.contracts.contract' call
      if (!this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_END_ELEMENT_getInstance())) {
        // Inline function 'kotlin.check.<anonymous>' call
        var message = 'Check failed.';
        throw IllegalStateException_init_$Create$(toString(message));
      }
    }
    // Inline function 'kotlin.check' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlin.check' call
    // Inline function 'kotlin.contracts.contract' call
    if (!isEquivalent(this.get_input_it4gip_k$().get_name_woqyms_k$(), this.get_xmlDescriptor_br8xbx_k$().get_entryName_l031w_k$())) {
      // Inline function 'kotlin.check.<anonymous>' call
      var message_0 = 'Check failed.';
      throw IllegalStateException_init_$Create$(toString(message_0));
    }
  };
  protoOf(AnonymousMapDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return 2;
  };
  function NamedMapDecoder($outer, xmlDescriptor, polyInfo, typeDiscriminatorName) {
    this.$this_4 = $outer;
    MapDecoderBase.call(this, $outer, xmlDescriptor, polyInfo, typeDiscriminatorName);
  }
  protoOf(NamedMapDecoder).checkRepeat_6ljoex_k$ = function (_this__u8e3s4) {
    return _this__u8e3s4;
  };
  protoOf(NamedMapDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isValueCollapsed_3vm2k9_k$()) {
      var tmp;
      // Inline function 'kotlin.mod' call
      var r = this.lastIndex_1 % 2 | 0;
      if ((r + (2 & ((r ^ 2) & (r | (-r | 0))) >> 31) | 0) === 1) {
        var tmp0_safe_receiver = this.get_input_it4gip_k$().peek_21nx7_k$();
        tmp = equals(tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_eventType_918hfv_k$(), EventType_START_ELEMENT_getInstance());
      } else {
        tmp = false;
      }
      if (tmp) {
        this.get_input_it4gip_k$().nextTag_ujozaf_k$();
      }
      if (protoOf(MapDecoderBase).decodeElementIndex_bstkhp_k$.call(this, descriptor) < 0) {
        return Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
      }
    } else {
      var tmp_0;
      // Inline function 'kotlin.mod' call
      var r_0 = this.lastIndex_1 % 2 | 0;
      if ((r_0 + (2 & ((r_0 ^ 2) & (r_0 | (-r_0 | 0))) >> 31) | 0) === 1) {
        tmp_0 = protoOf(MapDecoderBase).decodeElementIndex_bstkhp_k$.call(this, descriptor) < 0;
      } else {
        tmp_0 = false;
      }
      if (tmp_0) {
        return Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
      }
    }
    this.lastIndex_1 = this.lastIndex_1 + 1 | 0;
    return this.lastIndex_1;
  };
  protoOf(NamedMapDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    // Inline function 'kotlin.also' call
    var this_0 = protoOf(MapDecoderBase).decodeSerializableElement_uahnnv_k$.call(this, descriptor, index, deserializer, previousValue);
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.NamedMapDecoder.decodeSerializableElement.<anonymous>' call
    if ((index % 2 | 0) === 1 ? !this.get_xmlDescriptor_br8xbx_k$().get_isValueCollapsed_3vm2k9_k$() : false) {
      // Inline function 'kotlin.check' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlin.check' call
      // Inline function 'kotlin.contracts.contract' call
      if (!this.get_input_it4gip_k$().nextTag_ujozaf_k$().equals(EventType_END_ELEMENT_getInstance())) {
        // Inline function 'kotlin.check.<anonymous>' call
        var message = 'Check failed.';
        throw IllegalStateException_init_$Create$(toString(message));
      }
      assert(isEquivalent(this.get_xmlDescriptor_br8xbx_k$().get_entryName_l031w_k$(), this.get_input_it4gip_k$().get_name_woqyms_k$()));
    }
    return this_0;
  };
  protoOf(NamedMapDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
    assert(isEquivalent(this.get_xmlDescriptor_br8xbx_k$().get_tagName_ocsgis_k$(), this.get_input_it4gip_k$().get_name_woqyms_k$()));
    protoOf(MapDecoderBase).endStructure_1xqz0n_k$.call(this, descriptor);
  };
  protoOf(NamedMapDecoder).decodeCollectionSize_l3mlkk_k$ = function (descriptor) {
    return -1;
  };
  function PolymorphicDecoder($outer, xmlDescriptor, polyInfo) {
    this.$this_3 = $outer;
    TagDecoderBase.call(this, $outer, xmlDescriptor, null);
    this.polyInfo_1 = polyInfo;
    this.nextIndex_1 = 0;
    this.detectedPolyType_1 = null;
    this.polyTypeAttrname_1 = null;
  }
  protoOf(PolymorphicDecoder).decodeElementIndex_bstkhp_k$ = function (descriptor) {
    var polyMode = this.get_xmlDescriptor_br8xbx_k$().get_polymorphicMode_4qzik0_k$();
    if (equals(polyMode, TRANSPARENT_getInstance())) {
      var tmp;
      switch (this.nextIndex_1) {
        case 0:
        case 1:
          var tmp2 = this.nextIndex_1;
          this.nextIndex_1 = tmp2 + 1 | 0;
          tmp = tmp2;
          break;
        default:
          tmp = Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
          break;
      }
      return tmp;
    } else {
      if (!(this.detectedPolyType_1 == null)) {
        return this.nextIndex_1 === 1 ? 1 : Companion_getInstance_0().get_DECODE_DONE_1b8fna_k$();
      }
      if (this.nextIndex_1 === 0) {
        var inductionVariable = 0;
        var last = this.attrCount_1;
        if (inductionVariable < last)
          do {
            var i = inductionVariable;
            inductionVariable = inductionVariable + 1 | 0;
            var attrName = this.get_input_it4gip_k$().getAttributeName_q93fq1_k$(i);
            var tmp_0;
            var tmp_1;
            // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
            if (attrName.getNamespaceURI_665tvr_k$() === XMLConstants_getInstance().get_XSI_NS_URI_vuj20k_k$()) {
              // Inline function 'nl.adaptivity.xmlutil.localPart' call
              tmp_1 = attrName.getLocalPart_k3cdyw_k$() === 'type';
            } else {
              tmp_1 = false;
            }
            if (tmp_1) {
              tmp_0 = true;
            } else {
              var tmp5_safe_receiver = polyMode instanceof ATTR ? polyMode : null;
              tmp_0 = attrName.equals(tmp5_safe_receiver == null ? null : tmp5_safe_receiver.get_name_woqyms_k$());
            }
            if (tmp_0) {
              var sdec = new StringDecoder(this.$this_3, this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0), this.get_input_it4gip_k$().getAttributeValue_qah2od_k$(i));
              var typeQName_0 = XmlQNameSerializer_getInstance().deserialize_sy6x50_k$(sdec);
              // Inline function 'kotlin.collections.map' call
              var this_0 = this.get_xmlDescriptor_br8xbx_k$().get_polyInfo_mizov1_k$();
              // Inline function 'kotlin.collections.mapTo' call
              var destination = ArrayList_init_$Create$_0(this_0.get_size_woubt6_k$());
              // Inline function 'kotlin.collections.iterator' call
              var tmp0_iterator = this_0.get_entries_p20ztl_k$().iterator_jk1svi_k$();
              while (tmp0_iterator.hasNext_bitz1p_k$()) {
                var item = tmp0_iterator.next_20eer_k$();
                // Inline function 'nl.adaptivity.xmlutil.serialization.PolymorphicDecoder.decodeElementIndex.<anonymous>' call
                // Inline function 'kotlin.collections.component1' call
                var childSerialName = item.get_key_18j28a_k$();
                // Inline function 'kotlin.collections.component2' call
                var childDesc = item.get_value_j01efc_k$();
                var tmp$ret$5 = to(childSerialName, typeQName(this.get_config_c0698r_k$().get_policy_i5q4hn_k$(), childDesc));
                destination.add_utx5q5_k$(tmp$ret$5);
              }
              var childQnames = destination;
              var tmp_2 = this;
              var tmp$ret$9;
              $l$block: {
                // Inline function 'kotlin.collections.firstOrNull' call
                var tmp0_iterator_0 = childQnames.iterator_jk1svi_k$();
                while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
                  var element = tmp0_iterator_0.next_20eer_k$();
                  // Inline function 'nl.adaptivity.xmlutil.serialization.PolymorphicDecoder.decodeElementIndex.<anonymous>' call
                  if (element.get_second_jf7fjx_k$().equals(typeQName_0)) {
                    tmp$ret$9 = element;
                    break $l$block;
                  }
                }
                tmp$ret$9 = null;
              }
              var tmp6_safe_receiver = tmp$ret$9;
              var tmp7_elvis_lhs = tmp6_safe_receiver == null ? null : tmp6_safe_receiver.get_first_irdx8n_k$();
              var tmp_3;
              if (tmp7_elvis_lhs == null) {
                throw new XmlSerialException('Could not find child for type with qName: ' + typeQName_0 + '. Candidates are: ' + joinToString(childQnames));
              } else {
                tmp_3 = tmp7_elvis_lhs;
              }
              tmp_2.detectedPolyType_1 = tmp_3;
              this.polyTypeAttrname_1 = attrName;
              this.nextIndex_1 = 1;
              return 0;
            }
          }
           while (inductionVariable < last);
      }
      // Inline function 'kotlin.also' call
      var this_1 = protoOf(TagDecoderBase).decodeElementIndex_bstkhp_k$.call(this, descriptor);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.PolymorphicDecoder.decodeElementIndex.<anonymous>' call
      this.nextIndex_1 = this_1 + 1 | 0;
      return this_1;
    }
  };
  protoOf(PolymorphicDecoder).decodeStringElement_3oenpg_k$ = function (descriptor, index) {
    var isMixed = this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().equals(OutputKind_Mixed_getInstance());
    var tmp;
    if (index === 0) {
      var tmp_0;
      if (!(this.detectedPolyType_1 == null)) {
        tmp_0 = ensureNotNull(this.detectedPolyType_1);
      } else if (!this.get_xmlDescriptor_br8xbx_k$().get_isTransparent_hy4yan_k$()) {
        var typeTag = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0).get_tagName_ocsgis_k$();
        var tmp_1 = this.get_input_it4gip_k$();
        // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
        var tmp_2 = typeTag.getNamespaceURI_665tvr_k$();
        // Inline function 'nl.adaptivity.xmlutil.localPart' call
        var tmp$ret$1 = typeTag.getLocalPart_k3cdyw_k$();
        var tmp1_safe_receiver = tmp_1.getAttributeValue_8yb7e2_k$(tmp_2, tmp$ret$1);
        var tmp2_elvis_lhs = tmp1_safe_receiver == null ? null : Companion_getInstance_6().expandTypeNameIfNeeded_9la2i4_k$(tmp1_safe_receiver, this.get_xmlDescriptor_br8xbx_k$().get_parentSerialName_a9taha_k$());
        var tmp_3;
        if (tmp2_elvis_lhs == null) {
          throw new XmlParsingException(this.get_input_it4gip_k$().get_locationInfo_3kny30_k$(), 'Missing type for polymorphic value');
        } else {
          tmp_3 = tmp2_elvis_lhs;
        }
        tmp_0 = tmp_3;
      } else if (isMixed ? (this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_TEXT_getInstance()) ? true : this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_IGNORABLE_WHITESPACE_getInstance())) ? true : this.get_input_it4gip_k$().get_eventType_918hfv_k$().equals(EventType_CDSECT_getInstance()) : false) {
        tmp_0 = 'kotlin.String';
      } else if (this.polyInfo_1 == null) {
        var message = 'PolyInfo is null for a transparent polymorphic decoder';
        throw IllegalStateException_init_$Create$(toString(message));
      } else {
        tmp_0 = this.polyInfo_1.get_describedName_8lk92z_k$();
      }
      tmp = tmp_0;
    } else {
      var tmp_4;
      if (!this.get_xmlDescriptor_br8xbx_k$().get_isTransparent_hy4yan_k$()) {
        throw new XmlSerialException('NonTransparent polymorphic values cannot have text content only');
      } else if (isMixed) {
        tmp_4 = allConsecutiveTextContent(this.get_input_it4gip_k$());
      } else {
        tmp_4 = protoOf(TagDecoderBase).decodeStringElement_3oenpg_k$.call(this, descriptor, index);
      }
      tmp = tmp_4;
    }
    return tmp;
  };
  protoOf(PolymorphicDecoder).serialElementDecoder_wyqzby_k$ = function (desc, index, deserializer) {
    var tmp0_safe_receiver = this.polyInfo_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.descriptor_1;
    var childXmlDescriptor = tmp1_elvis_lhs == null ? this.get_xmlDescriptor_br8xbx_k$().getPolymorphicDescriptor_f2x8gl_k$(deserializer.get_descriptor_wjt6a0_k$().get_serialName_u2rqhk_k$()) : tmp1_elvis_lhs;
    return new SerialValueDecoder(this.$this_3, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1, this.polyTypeAttrname_1);
  };
  protoOf(PolymorphicDecoder).decodeSerializableElement_uahnnv_k$ = function (descriptor, index, deserializer, previousValue) {
    var tmp0_safe_receiver = this.detectedPolyType_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getPolymorphicDescriptor_f2x8gl_k$(tmp0_safe_receiver);
      var decoder = new SerialValueDecoder(this.$this_3, childXmlDescriptor, this.currentPolyInfo_1, this.lastAttrIndex_1, this.polyTypeAttrname_1);
      this.nextIndex_1 = 2;
      var result = deserializer.deserialize_sy6x50_k$(decoder);
      var tmp0_safe_receiver_0 = decoder instanceof SerialValueDecoder ? decoder : null;
      var tmp1_safe_receiver = tmp0_safe_receiver_0 == null ? null : tmp0_safe_receiver_0.tagIdHolder_1;
      var tagId = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_tagId_iyxoh8_k$();
      if (!(tagId == null)) {
        // Inline function 'kotlin.checkNotNull' call
        // Inline function 'kotlin.contracts.contract' call
        $l$block: {
          // Inline function 'kotlin.checkNotNull' call
          // Inline function 'kotlin.contracts.contract' call
          if (result == null) {
            // Inline function 'kotlin.checkNotNull.<anonymous>' call
            var message = 'Required value was null.';
            throw IllegalStateException_init_$Create$(toString(message));
          } else {
            break $l$block;
          }
        }
        if (!(this.$this_3._idMap_1.put_4fpzoq_k$(tagId, result) == null))
          throw XmlException_init_$Create$('Duplicate use of id ' + tagId);
      }
      return result;
    }
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isTransparent_hy4yan_k$()) {
      this.get_input_it4gip_k$().require_glcost_k$(EventType_START_ELEMENT_getInstance(), null, 'value');
      return protoOf(TagDecoderBase).decodeSerializableElement_uahnnv_k$.call(this, descriptor, index, deserializer, previousValue);
    }
    var isMixed = this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().equals(OutputKind_Mixed_getInstance());
    var tmp;
    var tmp_0;
    if (isMixed) {
      var tmp_1 = deserializer.get_descriptor_wjt6a0_k$().get_kind_wop7ml_k$();
      tmp_0 = tmp_1 instanceof PrimitiveKind;
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      var childXmlDescriptor_0 = this.get_xmlDescriptor_br8xbx_k$().getPolymorphicDescriptor_f2x8gl_k$(deserializer.get_descriptor_wjt6a0_k$().get_serialName_u2rqhk_k$());
      tmp = deserializer.deserialize_sy6x50_k$(new XmlDecoder(this.$this_3, childXmlDescriptor_0));
    } else {
      tmp = protoOf(TagDecoderBase).decodeSerializableElement_uahnnv_k$.call(this, descriptor, index, deserializer, previousValue);
    }
    return tmp;
  };
  protoOf(PolymorphicDecoder).endStructure_1xqz0n_k$ = function (descriptor) {
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isTransparent_hy4yan_k$()) {
      var tmp = this.get_input_it4gip_k$();
      var tmp_0 = EventType_END_ELEMENT_getInstance();
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp_1 = this.get_serialName_u2rqhk_k$().getNamespaceURI_665tvr_k$();
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      var tmp$ret$1 = this.get_serialName_u2rqhk_k$().getLocalPart_k3cdyw_k$();
      tmp.require_glcost_k$(tmp_0, tmp_1, tmp$ret$1);
    } else {
      var isMixed = this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().equals(OutputKind_Mixed_getInstance());
      if (!isMixed ? true : !this.get_xmlDescriptor_br8xbx_k$().get_isTransparent_hy4yan_k$()) {
        var tmp0_safe_receiver = this.polyInfo_1;
        var t = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.tagName_1;
        if (!(t == null)) {
          var tmp_2 = this.get_input_it4gip_k$();
          var tmp_3 = EventType_END_ELEMENT_getInstance();
          // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
          var tmp_4 = t.getNamespaceURI_665tvr_k$();
          // Inline function 'nl.adaptivity.xmlutil.localPart' call
          var tmp$ret$3 = t.getLocalPart_k3cdyw_k$();
          tmp_2.require_glcost_k$(tmp_3, tmp_4, tmp$ret$3);
        } else {
          protoOf(TagDecoderBase).endStructure_1xqz0n_k$.call(this, descriptor);
        }
      }
    }
  };
  function XmlDecoderBase(context, config, input) {
    XmlCodecBase.call(this, context, config);
    this.input_1 = new XmlBufferedReader(input);
    var tmp = this;
    // Inline function 'kotlin.collections.mutableMapOf' call
    tmp._idMap_1 = LinkedHashMap_init_$Create$();
  }
  protoOf(XmlDecoderBase).get_input_it4gip_k$ = function () {
    return this.input_1;
  };
  protoOf(XmlDecoderBase).get_namespaceContext_n7n1ib_k$ = function () {
    return this.input_1.get_namespaceContext_n7n1ib_k$();
  };
  protoOf(XmlDecoderBase).get_idMap_isxc7s_k$ = function () {
    return this._idMap_1;
  };
  protoOf(XmlDecoderBase).hasNullMark_g09bce_k$ = function () {
    if (this.input_1.get_eventType_918hfv_k$().equals(EventType_START_ELEMENT_getInstance())) {
      var tmp$ret$0;
      $l$block_0: {
        // Inline function 'kotlin.collections.any' call
        var this_0 = until(0, this.input_1.get_attributeCount_hqf30_k$());
        var tmp;
        if (isInterface(this_0, Collection)) {
          tmp = this_0.isEmpty_y1axqb_k$();
        } else {
          tmp = false;
        }
        if (tmp) {
          tmp$ret$0 = false;
          break $l$block_0;
        }
        var tmp0_iterator = this_0.iterator_jk1svi_k$();
        while (tmp0_iterator.hasNext_bitz1p_k$()) {
          var element = tmp0_iterator.next_20eer_k$();
          // Inline function 'nl.adaptivity.xmlutil.serialization.XmlDecoderBase.hasNullMark.<anonymous>' call
          var tmp_0;
          if ((this.input_1.getAttributeNamespace_wj9j6l_k$(element) === XMLConstants_getInstance().get_XSI_NS_URI_vuj20k_k$() ? this.input_1.getAttributeLocalName_i25hjc_k$(element) === 'nil' : false) ? this.input_1.getAttributeValue_qah2od_k$(element) === 'true' : false) {
            tmp_0 = true;
          } else {
            var tmp_1;
            var tmp_2 = this.input_1.getAttributeName_q93fq1_k$(element);
            var tmp0_safe_receiver = this.get_config_c0698r_k$().get_nilAttribute_2aq3ho_k$();
            if (tmp_2.equals(tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_first_irdx8n_k$())) {
              tmp_1 = this.input_1.getAttributeValue_qah2od_k$(element) === this.get_config_c0698r_k$().get_nilAttribute_2aq3ho_k$().get_second_jf7fjx_k$();
            } else {
              tmp_1 = false;
            }
            tmp_0 = tmp_1;
          }
          if (tmp_0) {
            tmp$ret$0 = true;
            break $l$block_0;
          }
        }
        tmp$ret$0 = false;
      }
      var hasNilAttr = tmp$ret$0;
      if (hasNilAttr)
        return true;
    }
    return false;
  };
  function PolyInfo(tagName, index, descriptor) {
    this.tagName_1 = tagName;
    this.index_1 = index;
    this.descriptor_1 = descriptor;
  }
  protoOf(PolyInfo).get_tagName_ocsgis_k$ = function () {
    return this.tagName_1;
  };
  protoOf(PolyInfo).get_index_it478p_k$ = function () {
    return this.index_1;
  };
  protoOf(PolyInfo).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(PolyInfo).get_describedName_8lk92z_k$ = function () {
    return this.descriptor_1.get_serialDescriptor_vvwkac_k$().get_serialName_u2rqhk_k$();
  };
  protoOf(PolyInfo).component1_7eebsc_k$ = function () {
    return this.tagName_1;
  };
  protoOf(PolyInfo).component2_7eebsb_k$ = function () {
    return this.index_1;
  };
  protoOf(PolyInfo).component3_7eebsa_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(PolyInfo).copy_1z2rym_k$ = function (tagName, index, descriptor) {
    return new PolyInfo(tagName, index, descriptor);
  };
  protoOf(PolyInfo).copy$default_rdr3yj_k$ = function (tagName, index, descriptor, $super) {
    tagName = tagName === VOID ? this.tagName_1 : tagName;
    index = index === VOID ? this.index_1 : index;
    descriptor = descriptor === VOID ? this.descriptor_1 : descriptor;
    return $super === VOID ? this.copy_1z2rym_k$(tagName, index, descriptor) : $super.copy_1z2rym_k$.call(this, tagName, index, descriptor);
  };
  protoOf(PolyInfo).toString = function () {
    return 'PolyInfo(tagName=' + this.tagName_1 + ', index=' + this.index_1 + ', descriptor=' + this.descriptor_1 + ')';
  };
  protoOf(PolyInfo).hashCode = function () {
    var result = this.tagName_1.hashCode();
    result = imul(result, 31) + this.index_1 | 0;
    result = imul(result, 31) + this.descriptor_1.hashCode() | 0;
    return result;
  };
  protoOf(PolyInfo).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof PolyInfo))
      return false;
    var tmp0_other_with_cast = other instanceof PolyInfo ? other : THROW_CCE();
    if (!this.tagName_1.equals(tmp0_other_with_cast.tagName_1))
      return false;
    if (!(this.index_1 === tmp0_other_with_cast.index_1))
      return false;
    if (!this.descriptor_1.equals(tmp0_other_with_cast.descriptor_1))
      return false;
    return true;
  };
  function encodeQName($this, value) {
    var effectiveQName = $this.ensureNamespace_z1zvq1_k$(value, false);
    XmlQNameSerializer_getInstance().serialize_n8ddsu_k$($this, effectiveQName);
  }
  function _get_namespaces__i479bh($this) {
    return $this.namespaces_1;
  }
  function _get_xmlDescriptor__fd349h($this) {
    return $this.xmlDescriptor_1;
  }
  function _get_parent__oo9xup($this) {
    return $this.parent_1;
  }
  function _get_childIndex__dryhx1($this) {
    return $this.childIndex_1;
  }
  function _get_delegate__idh0py_1($this) {
    return $this.delegate_1;
  }
  function _set_deferring__ho5kyr($this, _set____db54di) {
    $this.deferring_1 = _set____db54di;
  }
  function _get_deferring__o240lt($this) {
    return $this.deferring_1;
  }
  function _get_deferredBuffer__n6d6ac($this) {
    return $this.deferredBuffer_1;
  }
  function _get_reorderInfo__jh8mmw($this) {
    return $this.reorderInfo_1;
  }
  function writeDiscriminatorAttributeIfNeeded($this) {
    if (!($this.discriminatorName_1 == null)) {
      var typeName = $this.ensureNamespace_z1zvq1_k$(typeQName($this.get_config_c0698r_k$().get_policy_i5q4hn_k$(), $this.get_xmlDescriptor_br8xbx_k$()), true);
      smartWriteAttribute($this.$this_2, $this.discriminatorName_1, toCName(typeName));
    }
  }
  function encodeQName_0($this, elementDescriptor, index, value) {
    var effectiveQName = $this.ensureNamespace_z1zvq1_k$(value, false);
    var encoder = new XmlEncoder($this.$this_2, elementDescriptor, index);
    $this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeQName$lambda(encoder, effectiveQName));
  }
  function sam$kotlin_Comparator$0_0(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$kotlin_Comparator$0_0).compare_bczr_k$ = function (a, b) {
    return this.function_1(a, b);
  };
  protoOf(sam$kotlin_Comparator$0_0).compare = function (a, b) {
    return this.compare_bczr_k$(a, b);
  };
  function XmlEncoderBase$TagEncoder$encodeSerializableElement$lambda($value) {
    return function ($this$defer) {
      var tmp = CompactFragmentSerializer_getInstance();
      tmp.writeCompactFragmentContent_oj5bm5_k$($this$defer, (!($value == null) ? isInterface($value, ICompactFragment) : false) ? $value : THROW_CCE());
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeSerializableElement$lambda_0($effectiveSerializer, $encoder, $value) {
    return function ($this$defer) {
      $effectiveSerializer.serialize_5ase3y_k$($encoder, $value);
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeSerializableElement$lambda_1($effectiveSerializer, $encoder, $value) {
    return function ($this$defer) {
      $effectiveSerializer.serialize_5ase3y_k$($encoder, $value);
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeNullableSerializableElement$lambda($serializer, $encoder) {
    return function ($this$defer) {
      (isInterface($serializer, SerializationStrategy) ? $serializer : THROW_CCE()).serialize_5ase3y_k$($encoder, null);
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeNullableSerializableElement$lambda_0(this$0, $elemDescriptor, this$1, $nilAttr) {
    return function ($this$defer) {
      var this_0 = this$0.get_target_juba8q_k$();
      var qName = $elemDescriptor.get_tagName_ocsgis_k$();
      var nsUri = qName.getNamespaceURI_665tvr_k$();
      var localName = qName.getLocalPart_k3cdyw_k$();
      var prefix = qName.getPrefix_bu8bd4_k$();
      smartStartTag(this_0, nsUri, localName, prefix);
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagEncoder.encodeNullableSerializableElement.<anonymous>.<anonymous>' call
      smartWriteAttribute(this$1, $nilAttr.get_first_irdx8n_k$(), $nilAttr.get_second_jf7fjx_k$());
      this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeQName$lambda($encoder, $effectiveQName) {
    return function ($this$defer) {
      XmlQNameSerializer_getInstance().serialize_n8ddsu_k$($encoder, $effectiveQName);
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeStringElement$lambda(this$0, $elementDescriptor, $value) {
    return function ($this$defer) {
      var this_0 = this$0.get_target_juba8q_k$();
      var qName = $elementDescriptor.get_tagName_ocsgis_k$();
      var nsUri = qName.getNamespaceURI_665tvr_k$();
      var localName = qName.getLocalPart_k3cdyw_k$();
      var prefix = qName.getPrefix_bu8bd4_k$();
      smartStartTag(this_0, nsUri, localName, prefix);
      // Inline function 'nl.adaptivity.xmlutil.serialization.TagEncoder.encodeStringElement.<anonymous>.<anonymous>' call
      if (!$elementDescriptor.get_preserveSpace_4xp4oh_k$() ? isWhitespace(first($value)) ? true : isWhitespace(last($value)) : false) {
        this$0.get_target_juba8q_k$().attribute_ruzjv8_k$(XMLConstants_getInstance().get_XML_NS_URI_kvobz7_k$(), 'space', 'xml', 'preserve');
      }
      if ($elementDescriptor.get_isCData_z90sze_k$()) {
        this$0.get_target_juba8q_k$().cdsect_yhnzeu_k$($value);
      } else {
        this$0.get_target_juba8q_k$().text_x72pul_k$($value);
      }
      this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$encodeStringElement$lambda_0($elementDescriptor, this$0, $value) {
    return function ($this$defer) {
      var tmp;
      if ($elementDescriptor.get_isCData_z90sze_k$()) {
        this$0.get_target_juba8q_k$().cdsect_yhnzeu_k$($value);
        tmp = Unit_getInstance();
      } else {
        this$0.get_target_juba8q_k$().text_x72pul_k$($value);
        tmp = Unit_getInstance();
      }
      return Unit_getInstance();
    };
  }
  function XmlEncoderBase$TagEncoder$flushDeferred$lambda(a, b) {
    // Inline function 'kotlin.comparisons.compareValuesBy' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagEncoder.flushDeferred.<anonymous>' call
    var tmp = a.get_first_irdx8n_k$();
    // Inline function 'nl.adaptivity.xmlutil.serialization.TagEncoder.flushDeferred.<anonymous>' call
    var tmp$ret$1 = b.get_first_irdx8n_k$();
    return compareValues(tmp, tmp$ret$1);
  }
  function XmlEncoderBase$TagEncoder$doWriteAttribute$lambda(this$0, $actualAttrName, $value) {
    return function ($this$null) {
      smartWriteAttribute(this$0, $actualAttrName, $value);
      return Unit_getInstance();
    };
  }
  function _set_entryKey__tdkmay($this, _set____db54di) {
    $this.entryKey_1 = _set____db54di;
  }
  function _get_entryKey__gkoau6($this) {
    var tmp = $this.entryKey_1;
    if (!(tmp == null))
      return tmp;
    else {
      throwUninitializedPropertyAccessException('entryKey');
    }
  }
  function _get_elementIndex__oju3aj($this) {
    return $this.elementIndex_1;
  }
  function _get_valueBuilder__ur0ash($this) {
    return $this.valueBuilder_1;
  }
  function _get_delimiter__803m52($this) {
    return $this.delimiter_1;
  }
  function _get_listChildIdx__ih8wwk_0($this) {
    return $this.listChildIdx_1;
  }
  function _get_parentXmlDescriptor__yo818r_0($this) {
    var tmp = $this.get_xmlDescriptor_br8xbx_k$().get_tagParent_zbggxx_k$().get_descriptor_wjt6a0_k$();
    return tmp instanceof XmlDescriptor ? tmp : THROW_CCE();
  }
  function _get_mapDescriptor__1b9wli($this) {
    var tmp = $this.get_xmlDescriptor_br8xbx_k$();
    return tmp instanceof XmlMapDescriptor ? tmp : THROW_CCE();
  }
  function _set_keySerializer__vwqga4($this, _set____db54di) {
    $this.keySerializer_1 = _set____db54di;
  }
  function _get_keySerializer__nwm36o($this) {
    var tmp = $this.keySerializer_1;
    if (!(tmp == null))
      return tmp;
    else {
      throwUninitializedPropertyAccessException('keySerializer');
    }
  }
  function _set_keyValue__5jytol($this, _set____db54di) {
    $this.keyValue_1 = _set____db54di;
  }
  function _get_keyValue__78xhs7($this) {
    return $this.keyValue_1;
  }
  function XmlEncoderBase$MapEncoder$encodeSerializableElement$lambda(this$0, $valueDescriptor, this$1, $keyDescriptor, $effectiveSerializer, $value) {
    return function ($this$defer) {
      var this_0 = this$0.get_target_juba8q_k$();
      var qName = $valueDescriptor.get_tagName_ocsgis_k$();
      var nsUri = qName.getNamespaceURI_665tvr_k$();
      var localName = qName.getLocalPart_k3cdyw_k$();
      var prefix = qName.getPrefix_bu8bd4_k$();
      smartStartTag(this_0, nsUri, localName, prefix);
      // Inline function 'nl.adaptivity.xmlutil.serialization.MapEncoder.encodeSerializableElement.<anonymous>.<anonymous>' call
      var keyEncoder = new PrimitiveEncoder(this$1, $this$defer.get_serializersModule_piitvg_k$(), $keyDescriptor);
      var tmp = _get_keySerializer__nwm36o(this$0);
      keyEncoder.encodeSerializableValue_3uuzip_k$(isInterface(tmp, SerializationStrategy) ? tmp : THROW_CCE(), this$0.keyValue_1);
      var serializedKey = keyEncoder.output_1.toString();
      smartWriteAttribute(this$1, $keyDescriptor.get_tagName_ocsgis_k$(), serializedKey);
      $effectiveSerializer.serialize_5ase3y_k$(new InlineEncoder(this$1, this$0, 1), $value);
      this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
      return Unit_getInstance();
    };
  }
  function _set_nextAutoPrefixNo__50yhpe($this, _set____db54di) {
    $this.nextAutoPrefixNo_1 = _set____db54di;
  }
  function _get_nextAutoPrefixNo__y42qs6($this) {
    return $this.nextAutoPrefixNo_1;
  }
  function XmlEncoder($outer, xmlDescriptor, elementIndex, discriminatorName) {
    discriminatorName = discriminatorName === VOID ? null : discriminatorName;
    this.$this_2 = $outer;
    XmlCodec.call(this, $outer, xmlDescriptor);
    this.elementIndex_1 = elementIndex;
    this.discriminatorName_1 = discriminatorName;
  }
  protoOf(XmlEncoder).get_elementIndex_59wfb5_k$ = function () {
    return this.elementIndex_1;
  };
  protoOf(XmlEncoder).get_discriminatorName_6w4dr2_k$ = function () {
    return this.discriminatorName_1;
  };
  protoOf(XmlEncoder).get_target_juba8q_k$ = function () {
    return this.$this_2.target_1;
  };
  protoOf(XmlEncoder).get_serializersModule_piitvg_k$ = function () {
    return this.$this_2.get_serializersModule_piitvg_k$();
  };
  protoOf(XmlEncoder).get_config_c0698r_k$ = function () {
    return this.$this_2.get_config_c0698r_k$();
  };
  protoOf(XmlEncoder).ensureNamespace_z1zvq1_k$ = function (qName, isAttr) {
    return ensureNamespace_1(this.$this_2, qName, isAttr);
  };
  protoOf(XmlEncoder).encodeBoolean_tu2e59_k$ = function (value) {
    return this.encodeString_424b5v_k$(value.toString());
  };
  protoOf(XmlEncoder).encodeByte_6txfee_k$ = function (value) {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUByte' call
      var tmp$ret$0 = _UByte___init__impl__g9hnc4(value);
      this.encodeString_424b5v_k$(UByte__toString_impl_v72jg(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(XmlEncoder).encodeShort_gza6si_k$ = function (value) {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUShort' call
      var tmp$ret$0 = _UShort___init__impl__jigrne(value);
      this.encodeString_424b5v_k$(UShort__toString_impl_edaoee(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(XmlEncoder).encodeInt_y5zi3z_k$ = function (value) {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUInt' call
      var tmp$ret$0 = _UInt___init__impl__l7qpdl(value);
      this.encodeString_424b5v_k$(UInt__toString_impl_dbgl21(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(XmlEncoder).encodeLong_3didw_k$ = function (value) {
    var tmp;
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toULong' call
      var tmp$ret$0 = _ULong___init__impl__c78o9k(value);
      this.encodeString_424b5v_k$(ULong__toString_impl_f9au7k(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(XmlEncoder).encodeFloat_b8b85a_k$ = function (value) {
    return this.encodeString_424b5v_k$(value.toString());
  };
  protoOf(XmlEncoder).encodeDouble_n270q9_k$ = function (value) {
    return this.encodeString_424b5v_k$(value.toString());
  };
  protoOf(XmlEncoder).encodeChar_oxoup_k$ = function (value) {
    return this.encodeString_424b5v_k$(toString_0(value));
  };
  protoOf(XmlEncoder).encodeString_424b5v_k$ = function (value) {
    var tmp = this.get_xmlDescriptor_br8xbx_k$();
    var defaultValue = (tmp instanceof XmlValueDescriptor ? tmp : THROW_CCE()).get_default_qtagd4_k$();
    if (value === defaultValue)
      return Unit_getInstance();
    switch (this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$()) {
      case 4:
      case 0:
        // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call

        var this_0 = this.get_target_juba8q_k$();
        var qName = this.get_serialName_u2rqhk_k$();
        // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call

        var nsUri = qName.getNamespaceURI_665tvr_k$();
        var localName = qName.getLocalPart_k3cdyw_k$();
        var prefix = qName.getPrefix_bu8bd4_k$();
        smartStartTag(this_0, nsUri, localName, prefix);
        // Inline function 'nl.adaptivity.xmlutil.serialization.XmlEncoder.encodeString.<anonymous>' call

        if (!(this.discriminatorName_1 == null)) {
          var typeRef = this.ensureNamespace_z1zvq1_k$(typeQName(this.get_config_c0698r_k$().get_policy_i5q4hn_k$(), this.get_xmlDescriptor_br8xbx_k$()), false);
          smartWriteAttribute(this.$this_2, this.discriminatorName_1, toCName(typeRef));
        }

        if (!this.get_xmlDescriptor_br8xbx_k$().get_preserveSpace_4xp4oh_k$() ? isWhitespace(first(value)) ? true : isWhitespace(last(value)) : false) {
          this.get_target_juba8q_k$().attribute_ruzjv8_k$(XMLConstants_getInstance().get_XML_NS_URI_kvobz7_k$(), 'space', 'xml', 'preserve');
        }

        if (this.get_xmlDescriptor_br8xbx_k$().get_isCData_z90sze_k$()) {
          this.get_target_juba8q_k$().cdsect_yhnzeu_k$(value);
        } else {
          this.get_target_juba8q_k$().text_x72pul_k$(value);
        }

        this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
        break;
      case 1:
        smartWriteAttribute(this.$this_2, this.get_serialName_u2rqhk_k$(), value);
        break;
      case 3:
      case 2:
        if (this.get_xmlDescriptor_br8xbx_k$().get_isCData_z90sze_k$()) {
          this.get_target_juba8q_k$().cdsect_yhnzeu_k$(value);
        } else {
          this.get_target_juba8q_k$().text_x72pul_k$(value);
        }

        break;
    }
  };
  protoOf(XmlEncoder).encodeEnum_2qin0y_k$ = function (enumDescriptor, index) {
    var stringRepr = this.get_config_c0698r_k$().get_policy_i5q4hn_k$().enumEncoding_gn3znf_k$(enumDescriptor, index);
    this.encodeString_424b5v_k$(stringRepr);
  };
  protoOf(XmlEncoder).encodeNotNullMark_415a1t_k$ = function () {
  };
  protoOf(XmlEncoder).encodeNull_ejiosz_k$ = function () {
    var nilAttr = this.get_config_c0698r_k$().get_nilAttribute_2aq3ho_k$();
    if (this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().equals(OutputKind_Element_getInstance()) ? !(nilAttr == null) : false) {
      // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
      var this_0 = this.get_target_juba8q_k$();
      var qName = this.get_serialName_u2rqhk_k$();
      // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
      var nsUri = qName.getNamespaceURI_665tvr_k$();
      var localName = qName.getLocalPart_k3cdyw_k$();
      var prefix = qName.getPrefix_bu8bd4_k$();
      smartStartTag(this_0, nsUri, localName, prefix);
      // Inline function 'nl.adaptivity.xmlutil.serialization.XmlEncoder.encodeNull.<anonymous>' call
      if (!(this.discriminatorName_1 == null)) {
        var typeRef = this.ensureNamespace_z1zvq1_k$(typeQName(this.get_config_c0698r_k$().get_policy_i5q4hn_k$(), this.get_xmlDescriptor_br8xbx_k$()), true);
        smartWriteAttribute(this.$this_2, this.discriminatorName_1, toCName(typeRef));
      }
      smartWriteAttribute(this.$this_2, nilAttr.get_first_irdx8n_k$(), nilAttr.get_second_jf7fjx_k$());
      this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
    }
  };
  protoOf(XmlEncoder).encodeSerializableValue_3uuzip_k$ = function (serializer, value) {
    var effectiveSerializer = this.get_xmlDescriptor_br8xbx_k$().effectiveSerializationStrategy_su7rny_k$(serializer);
    if (equals(effectiveSerializer, XmlQNameSerializer_getInstance())) {
      encodeQName(this, value instanceof QName ? value : THROW_CCE());
    } else {
      effectiveSerializer.serialize_5ase3y_k$(this, value);
    }
  };
  protoOf(XmlEncoder).encodeInline_wxp5pu_k$ = function (descriptor) {
    return new XmlEncoder(this.$this_2, this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0), this.elementIndex_1, this.discriminatorName_1);
  };
  protoOf(XmlEncoder).beginStructure_yljocp_k$ = function (descriptor) {
    // Inline function 'kotlin.apply' call
    var this_0 = this.$this_2.getCompositeEncoder_q789fh_k$(this.get_xmlDescriptor_br8xbx_k$(), this.elementIndex_1, this.discriminatorName_1);
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.XmlEncoder.beginStructure.<anonymous>' call
    this_0.writeBegin_2sohtm_k$();
    return this_0;
  };
  function NSAttrXmlEncoder($outer, xmlDescriptor, namespaces, elementIndex) {
    this.$this_3 = $outer;
    XmlEncoder.call(this, $outer, xmlDescriptor, elementIndex);
    this.namespaces_1 = toList(namespaces);
  }
  protoOf(NSAttrXmlEncoder).beginStructure_yljocp_k$ = function (descriptor) {
    var compositeEncoder = protoOf(XmlEncoder).beginStructure_yljocp_k$.call(this, descriptor);
    var tmp0_iterator = this.namespaces_1.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var namespace = tmp0_iterator.next_20eer_k$();
      if (this.get_target_juba8q_k$().getNamespaceUri_buhtgt_k$(namespace.get_prefix_i78za3_k$()) == null) {
        this.get_target_juba8q_k$().namespaceAttr_b6cim8_k$(namespace);
      }
    }
    return compositeEncoder;
  };
  function PrimitiveEncoder($outer, serializersModule, xmlDescriptor) {
    this.$this_1 = $outer;
    this.serializersModule_1 = serializersModule;
    this.xmlDescriptor_1 = xmlDescriptor;
    this.output_1 = StringBuilder_init_$Create$();
  }
  protoOf(PrimitiveEncoder).get_serializersModule_piitvg_k$ = function () {
    return this.serializersModule_1;
  };
  protoOf(PrimitiveEncoder).get_output_hs4j62_k$ = function () {
    return this.output_1;
  };
  protoOf(PrimitiveEncoder).get_config_c0698r_k$ = function () {
    return this.$this_1.get_config_c0698r_k$();
  };
  protoOf(PrimitiveEncoder).get_serialName_u2rqhk_k$ = function () {
    return this.xmlDescriptor_1.get_tagName_ocsgis_k$();
  };
  protoOf(PrimitiveEncoder).get_target_juba8q_k$ = function () {
    return this.$this_1.target_1;
  };
  protoOf(PrimitiveEncoder).ensureNamespace_z1zvq1_k$ = function (qName, isAttr) {
    return ensureNamespace_1(this.$this_1, qName, isAttr);
  };
  protoOf(PrimitiveEncoder).beginStructure_yljocp_k$ = function (descriptor) {
    throw IllegalArgumentException_init_$Create$('Primitives cannot be structs');
  };
  protoOf(PrimitiveEncoder).encodeBoolean_tu2e59_k$ = function (value) {
    return this.encodeString_424b5v_k$(value.toString());
  };
  protoOf(PrimitiveEncoder).encodeByte_6txfee_k$ = function (value) {
    var tmp;
    if (this.xmlDescriptor_1.get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUByte' call
      var tmp$ret$0 = _UByte___init__impl__g9hnc4(value);
      this.encodeString_424b5v_k$(UByte__toString_impl_v72jg(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(PrimitiveEncoder).encodeChar_oxoup_k$ = function (value) {
    return this.encodeString_424b5v_k$(toString_0(value));
  };
  protoOf(PrimitiveEncoder).encodeDouble_n270q9_k$ = function (value) {
    return this.encodeString_424b5v_k$(value.toString());
  };
  protoOf(PrimitiveEncoder).encodeEnum_2qin0y_k$ = function (enumDescriptor, index) {
    var tagName = this.xmlDescriptor_1.getElementDescriptor_ncda77_k$(index).get_tagName_ocsgis_k$();
    var tmp;
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    if (tagName.getNamespaceURI_665tvr_k$() === '') {
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      tmp = tagName.getPrefix_bu8bd4_k$() === '';
    } else {
      tmp = false;
    }
    if (tmp) {
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      var tmp$ret$2 = tagName.getLocalPart_k3cdyw_k$();
      this.encodeString_424b5v_k$(tmp$ret$2);
    } else {
      this.encodeSerializableValue_3uuzip_k$(QNameSerializer_getInstance(), tagName);
    }
  };
  protoOf(PrimitiveEncoder).encodeFloat_b8b85a_k$ = function (value) {
    return this.encodeString_424b5v_k$(value.toString());
  };
  protoOf(PrimitiveEncoder).encodeInline_wxp5pu_k$ = function (descriptor) {
    return this;
  };
  protoOf(PrimitiveEncoder).encodeInt_y5zi3z_k$ = function (value) {
    var tmp;
    if (this.xmlDescriptor_1.get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUInt' call
      var tmp$ret$0 = _UInt___init__impl__l7qpdl(value);
      this.encodeString_424b5v_k$(UInt__toString_impl_dbgl21(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(PrimitiveEncoder).encodeLong_3didw_k$ = function (value) {
    var tmp;
    if (this.xmlDescriptor_1.get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toULong' call
      var tmp$ret$0 = _ULong___init__impl__c78o9k(value);
      this.encodeString_424b5v_k$(ULong__toString_impl_f9au7k(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(PrimitiveEncoder).encodeNull_ejiosz_k$ = function () {
    return Unit_getInstance();
  };
  protoOf(PrimitiveEncoder).encodeShort_gza6si_k$ = function (value) {
    var tmp;
    if (this.xmlDescriptor_1.get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUShort' call
      var tmp$ret$0 = _UShort___init__impl__jigrne(value);
      this.encodeString_424b5v_k$(UShort__toString_impl_edaoee(tmp$ret$0));
      tmp = Unit_getInstance();
    } else {
      this.encodeString_424b5v_k$(value.toString());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  protoOf(PrimitiveEncoder).encodeString_424b5v_k$ = function (value) {
    this.output_1.append_22ad7x_k$(value);
  };
  protoOf(PrimitiveEncoder).encodeSerializableValue_3uuzip_k$ = function (serializer, value) {
    var tmp0_subject = this.xmlDescriptor_1.effectiveSerializationStrategy_su7rny_k$(serializer);
    if (equals(tmp0_subject, XmlQNameSerializer_getInstance())) {
      var tmp = XmlQNameSerializer_getInstance();
      tmp.serialize_n8ddsu_k$(this, this.ensureNamespace_967ewy_k$(value instanceof QName ? value : THROW_CCE()));
    } else {
      encodeSerializableValue.call(this, serializer, value);
    }
  };
  function InlineEncoder($outer, parent, childIndex) {
    this.$this_3 = $outer;
    XmlEncoder.call(this, $outer, parent.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(childIndex), childIndex, null);
    this.parent_1 = parent;
    this.childIndex_1 = childIndex;
  }
  protoOf(InlineEncoder).encodeString_424b5v_k$ = function (value) {
    var d = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    this.parent_1.encodeStringElement_f10ojn_k$(d, this.childIndex_1, value);
  };
  protoOf(InlineEncoder).encodeSerializableValue_3uuzip_k$ = function (serializer, value) {
    var d = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    this.parent_1.encodeSerializableElement_53flzi_k$(d, this.childIndex_1, serializer, value);
  };
  protoOf(InlineEncoder).encodeInline_wxp5pu_k$ = function (descriptor) {
    return this;
  };
  protoOf(InlineEncoder).beginStructure_yljocp_k$ = function (descriptor) {
    // Inline function 'kotlin.apply' call
    var this_0 = new InlineTagEncoder(this.$this_3, this.$this_3.getCompositeEncoder_q789fh_k$(this.get_xmlDescriptor_br8xbx_k$(), this.elementIndex_1, this.discriminatorName_1));
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.InlineEncoder.beginStructure.<anonymous>' call
    this_0.writeBegin_2sohtm_k$();
    return this_0;
  };
  function InlineTagEncoder($outer, delegate) {
    this.$this_3 = $outer;
    TagEncoder.call(this, $outer, delegate.get_xmlDescriptor_br8xbx_k$(), null);
    this.delegate_1 = delegate;
  }
  protoOf(InlineTagEncoder).writeBegin_2sohtm_k$ = function () {
  };
  protoOf(InlineTagEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    this.delegate_1.encodeSerializableElement_53flzi_k$(elementDescriptor, index, serializer, value);
  };
  protoOf(InlineTagEncoder).encodeInlineElement_69jjkk_k$ = function (descriptor, index) {
    return this.delegate_1.encodeInlineElement_69jjkk_k$(descriptor, index);
  };
  protoOf(InlineTagEncoder).shouldEncodeElementDefault_x8eyid_k$ = function (descriptor, index) {
    return this.delegate_1.shouldEncodeElementDefault_x8eyid_k$(descriptor, index);
  };
  protoOf(InlineTagEncoder).encodeNullableSerializableElement_5lquiv_k$ = function (descriptor, index, serializer, value) {
    this.delegate_1.encodeNullableSerializableElement_5lquiv_k$(descriptor, index, serializer, value);
  };
  protoOf(InlineTagEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    this.delegate_1.encodeStringElement_f10ojn_k$(elementDescriptor, index, value);
  };
  protoOf(InlineTagEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
    this.delegate_1.flushDeferred_3dyg25_k$();
  };
  function TagEncoder($outer, xmlDescriptor, discriminatorName, deferring) {
    deferring = deferring === VOID ? true : deferring;
    this.$this_2 = $outer;
    XmlTagCodec.call(this, $outer, xmlDescriptor);
    this.discriminatorName_1 = discriminatorName;
    this.deferring_1 = deferring;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.deferredBuffer_1 = ArrayList_init_$Create$();
    var tmp_0 = this;
    var tmp0_safe_receiver = xmlDescriptor instanceof XmlCompositeDescriptor ? xmlDescriptor : null;
    tmp_0.reorderInfo_1 = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_childReorderMap_nnsi44_k$();
  }
  protoOf(TagEncoder).get_discriminatorName_6w4dr2_k$ = function () {
    return this.discriminatorName_1;
  };
  protoOf(TagEncoder).get_target_juba8q_k$ = function () {
    return this.$this_2.target_1;
  };
  protoOf(TagEncoder).get_namespaceContext_n7n1ib_k$ = function () {
    return this.$this_2.target_1.get_namespaceContext_n7n1ib_k$();
  };
  protoOf(TagEncoder).ensureNamespace_z1zvq1_k$ = function (qName, isAttr) {
    return ensureNamespace_1(this.$this_2, qName, isAttr);
  };
  protoOf(TagEncoder).writeBegin_2sohtm_k$ = function () {
    smartStartTag_0(this.get_target_juba8q_k$(), this.get_serialName_u2rqhk_k$());
    this.writeNamespaceDecls_w1x38j_k$();
    writeDiscriminatorAttributeIfNeeded(this);
  };
  protoOf(TagEncoder).writeNamespaceDecls_w1x38j_k$ = function () {
    var tmp0_iterator = this.get_xmlDescriptor_br8xbx_k$().get_namespaceDecls_1u0o6v_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var namespace = tmp0_iterator.next_20eer_k$();
      ensureNamespace_0(this.$this_2, namespace);
    }
  };
  protoOf(TagEncoder).defer_nc8zz5_k$ = function (index, deferred) {
    if (this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index).get_doInline_tyxd0z_k$()) {
      deferred(this);
    } else if (!this.deferring_1) {
      deferred(this);
    } else if (!(this.reorderInfo_1 == null)) {
      this.deferredBuffer_1.add_utx5q5_k$(to(this.reorderInfo_1[index], deferred));
    } else {
      var outputKind = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index).get_outputKind_tsa18e_k$();
      if (outputKind.equals(OutputKind_Attribute_getInstance())) {
        deferred(this);
      } else {
        this.deferredBuffer_1.add_utx5q5_k$(to(index, deferred));
      }
    }
  };
  protoOf(TagEncoder).encodeSerializableElement_isqxcl_k$ = function (descriptor, index, serializer, value) {
    this.encodeSerializableElement_53flzi_k$(this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index), index, serializer, value);
  };
  protoOf(TagEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    var encoder = elementDescriptor.get_doInline_tyxd0z_k$() ? new InlineEncoder(this.$this_2, this, index) : new XmlEncoder(this.$this_2, elementDescriptor, index);
    var effectiveSerializer = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index).effectiveSerializationStrategy_su7rny_k$(serializer);
    if (equals(effectiveSerializer, XmlQNameSerializer_getInstance())) {
      encodeQName_0(this, elementDescriptor, index, value instanceof QName ? value : THROW_CCE());
    } else if (equals(effectiveSerializer, CompactFragmentSerializer_getInstance()))
      if (getValueChild(this.get_xmlDescriptor_br8xbx_k$()) === index) {
        this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeSerializableElement$lambda(value));
      } else {
        this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeSerializableElement$lambda_0(effectiveSerializer, encoder, value));
      }
     else {
      this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeSerializableElement$lambda_1(effectiveSerializer, encoder, value));
    }
  };
  protoOf(TagEncoder).encodeInlineElement_69jjkk_k$ = function (descriptor, index) {
    return new InlineEncoder(this.$this_2, this, index);
  };
  protoOf(TagEncoder).shouldEncodeElementDefault_x8eyid_k$ = function (descriptor, index) {
    var elementDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    return this.get_config_c0698r_k$().get_policy_i5q4hn_k$().shouldEncodeElementDefault_88zm81_k$(elementDescriptor);
  };
  protoOf(TagEncoder).encodeBooleanElement_ydht7q_k$ = function (descriptor, index, value) {
    this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
  };
  protoOf(TagEncoder).encodeByteElement_kft2ib_k$ = function (descriptor, index, value) {
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUByte' call
      var tmp$ret$0 = _UByte___init__impl__g9hnc4(value);
      this.encodeStringElement_1n5wu2_k$(descriptor, index, UByte__toString_impl_v72jg(tmp$ret$0));
    } else {
      this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
    }
  };
  protoOf(TagEncoder).encodeShortElement_4bcdph_k$ = function (descriptor, index, value) {
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUShort' call
      var tmp$ret$0 = _UShort___init__impl__jigrne(value);
      this.encodeStringElement_1n5wu2_k$(descriptor, index, UShort__toString_impl_edaoee(tmp$ret$0));
    } else {
      this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
    }
  };
  protoOf(TagEncoder).encodeIntElement_krhhce_k$ = function (descriptor, index, value) {
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toUInt' call
      var tmp$ret$0 = _UInt___init__impl__l7qpdl(value);
      this.encodeStringElement_1n5wu2_k$(descriptor, index, UInt__toString_impl_dbgl21(tmp$ret$0));
    } else {
      this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
    }
  };
  protoOf(TagEncoder).encodeLongElement_cega27_k$ = function (descriptor, index, value) {
    if (this.get_xmlDescriptor_br8xbx_k$().get_isUnsigned_xk1s8o_k$() === true) {
      // Inline function 'kotlin.toULong' call
      var tmp$ret$0 = _ULong___init__impl__c78o9k(value);
      this.encodeStringElement_1n5wu2_k$(descriptor, index, ULong__toString_impl_f9au7k(tmp$ret$0));
    } else {
      this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
    }
  };
  protoOf(TagEncoder).encodeFloatElement_oe8hn_k$ = function (descriptor, index, value) {
    this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
  };
  protoOf(TagEncoder).encodeDoubleElement_a6rqhe_k$ = function (descriptor, index, value) {
    this.encodeStringElement_1n5wu2_k$(descriptor, index, value.toString());
  };
  protoOf(TagEncoder).encodeCharElement_fmv250_k$ = function (descriptor, index, value) {
    this.encodeStringElement_1n5wu2_k$(descriptor, index, toString_0(value));
  };
  protoOf(TagEncoder).encodeNullableSerializableElement_5lquiv_k$ = function (descriptor, index, serializer, value) {
    var nilAttr = this.get_config_c0698r_k$().get_nilAttribute_2aq3ho_k$();
    var elemDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    if (!(value == null)) {
      this.encodeSerializableElement_isqxcl_k$(descriptor, index, serializer, value);
    } else if (serializer.get_descriptor_wjt6a0_k$().get_isNullable_67sy7o_k$()) {
      var encoder = elemDescriptor.get_doInline_tyxd0z_k$() ? new InlineEncoder(this.$this_2, this, index) : new XmlEncoder(this.$this_2, elemDescriptor, index);
      this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeNullableSerializableElement$lambda(serializer, encoder));
    } else if (!(nilAttr == null) ? elemDescriptor.get_effectiveOutputKind_uvd9nx_k$().equals(OutputKind_Element_getInstance()) : false) {
      this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeNullableSerializableElement$lambda_0(this, elemDescriptor, this.$this_2, nilAttr));
    }
  };
  protoOf(TagEncoder).encodeStringElement_1n5wu2_k$ = function (descriptor, index, value) {
    var elementDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(index);
    this.encodeStringElement_f10ojn_k$(elementDescriptor, index, value);
  };
  protoOf(TagEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    var tmp0_safe_receiver = elementDescriptor instanceof XmlValueDescriptor ? elementDescriptor : null;
    var defaultValue = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_default_qtagd4_k$();
    if (value === defaultValue)
      return Unit_getInstance();
    switch (elementDescriptor.get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$()) {
      case 4:
      case 0:
        this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeStringElement$lambda(this, elementDescriptor, value));
        break;
      case 1:
        this.doWriteAttribute_noj7dr_k$(index, elementDescriptor.get_tagName_ocsgis_k$(), value);
        break;
      case 3:
      case 2:
        if (!elementDescriptor.get_preserveSpace_4xp4oh_k$() ? isWhitespace(first(value)) ? true : isWhitespace(last(value)) : false) {
          this.get_target_juba8q_k$().attribute_ruzjv8_k$(XMLConstants_getInstance().get_XML_NS_URI_kvobz7_k$(), 'space', 'xml', 'preserve');
        }

        this.defer_nc8zz5_k$(index, XmlEncoderBase$TagEncoder$encodeStringElement$lambda_0(elementDescriptor, this, value));
        break;
    }
  };
  protoOf(TagEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
    this.flushDeferred_3dyg25_k$();
    endTag(this.get_target_juba8q_k$(), this.get_serialName_u2rqhk_k$());
  };
  protoOf(TagEncoder).flushDeferred_3dyg25_k$ = function () {
    this.deferring_1 = false;
    // Inline function 'kotlin.collections.sortedBy' call
    var this_0 = this.deferredBuffer_1;
    // Inline function 'kotlin.comparisons.compareBy' call
    var tmp = XmlEncoderBase$TagEncoder$flushDeferred$lambda;
    var tmp$ret$0 = new sam$kotlin_Comparator$0_0(tmp);
    var actions = sortedWith_0(this_0, tmp$ret$0);
    var tmp0_iterator = actions.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var deferred = tmp0_iterator.next_20eer_k$().component2_7eebsb_k$();
      deferred(this);
    }
  };
  protoOf(TagEncoder).doWriteAttribute_noj7dr_k$ = function (index, name, value) {
    var tmp;
    var tmp_0;
    // Inline function 'kotlin.text.isEmpty' call
    var this_0 = name.getNamespaceURI_665tvr_k$();
    if (charSequenceLength(this_0) === 0) {
      tmp_0 = true;
    } else {
      var tmp_1;
      if (this.get_serialName_u2rqhk_k$().getNamespaceURI_665tvr_k$() === name.getNamespaceURI_665tvr_k$()) {
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        var tmp_2 = this.get_serialName_u2rqhk_k$().getPrefix_bu8bd4_k$();
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        tmp_1 = tmp_2 === name.getPrefix_bu8bd4_k$();
      } else {
        tmp_1 = false;
      }
      tmp_0 = tmp_1;
    }
    if (tmp_0) {
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      var tmp$ret$3 = name.getLocalPart_k3cdyw_k$();
      tmp = QName_init_$Create$(tmp$ret$3);
    } else {
      tmp = name;
    }
    var actualAttrName = tmp;
    if (!(this.reorderInfo_1 == null)) {
      var deferred = XmlEncoderBase$TagEncoder$doWriteAttribute$lambda(this.$this_2, actualAttrName, value);
      this.deferredBuffer_1.add_utx5q5_k$(to(this.reorderInfo_1[index], deferred));
    } else {
      smartWriteAttribute(this.$this_2, actualAttrName, value);
    }
  };
  function nextAutoPrefix(_this__u8e3s4, $this) {
    var prefix;
    do {
      prefix = 'n' + $this.nextAutoPrefixNo_1;
    }
     while (!(_this__u8e3s4.getNamespaceURI_859c43_k$(prefix) == null));
    return prefix;
  }
  function ensureNamespace_0($this, namespace) {
    if (!($this.get_namespaceContext_n7n1ib_k$().getPrefix_7o0aoe_k$(namespace.get_namespaceURI_g6nmhy_k$()) == null))
      return Unit_getInstance();
    var effectivePrefix = $this.get_namespaceContext_n7n1ib_k$().getNamespaceURI_859c43_k$(namespace.get_prefix_i78za3_k$()) == null ? namespace.get_prefix_i78za3_k$() : nextAutoPrefix($this.get_namespaceContext_n7n1ib_k$(), $this);
    $this.target_1.namespaceAttr_vkifxg_k$(effectivePrefix, namespace.get_namespaceURI_g6nmhy_k$());
  }
  function ensureNamespace_1($this, qName, isAttr) {
    if (isAttr) {
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      if (qName.getNamespaceURI_665tvr_k$() === '')
        return copy(qName, '');
      else {
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        if (qName.getPrefix_bu8bd4_k$() === '') {
          var tmp$ret$6;
          $l$block: {
            // Inline function 'kotlin.sequences.firstOrNull' call
            // Inline function 'nl.adaptivity.xmlutil.prefixesFor' call
            var this_0 = $this.target_1.get_namespaceContext_n7n1ib_k$();
            // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
            var namespaceURI = qName.getNamespaceURI_665tvr_k$();
            var tmp = this_0.getPrefixes_8uhuv8_k$(namespaceURI);
            var tmp$ret$3 = isInterface(tmp, Iterator) ? tmp : THROW_CCE();
            var tmp0_iterator = asSequence(tmp$ret$3).iterator_jk1svi_k$();
            while (tmp0_iterator.hasNext_bitz1p_k$()) {
              var element = tmp0_iterator.next_20eer_k$();
              // Inline function 'nl.adaptivity.xmlutil.serialization.XmlEncoderBase.ensureNamespace.<anonymous>' call
              // Inline function 'kotlin.text.isNotEmpty' call
              if (charSequenceLength(element) > 0) {
                tmp$ret$6 = element;
                break $l$block;
              }
            }
            tmp$ret$6 = null;
          }
          var tmp0_elvis_lhs = tmp$ret$6;
          var tmp_0;
          if (tmp0_elvis_lhs == null) {
            // Inline function 'kotlin.also' call
            var this_1 = nextAutoPrefix($this.get_namespaceContext_n7n1ib_k$(), $this);
            // Inline function 'kotlin.contracts.contract' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.XmlEncoderBase.ensureNamespace.<anonymous>' call
            // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
            var tmp$ret$7 = qName.getNamespaceURI_665tvr_k$();
            $this.target_1.namespaceAttr_vkifxg_k$(this_1, tmp$ret$7);
            tmp_0 = this_1;
          } else {
            tmp_0 = tmp0_elvis_lhs;
          }
          var effectivePrefix = tmp_0;
          return copy(qName, effectivePrefix);
        }
      }
    }
    var registeredNamespace = $this.target_1.getNamespaceUri_buhtgt_k$(qName.getPrefix_bu8bd4_k$());
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    if (registeredNamespace === qName.getNamespaceURI_665tvr_k$())
      return qName;
    // Inline function 'nl.adaptivity.xmlutil.prefixesFor' call
    var this_2 = $this.target_1.get_namespaceContext_n7n1ib_k$();
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var namespaceURI_0 = qName.getNamespaceURI_665tvr_k$();
    var tmp_1 = this_2.getPrefixes_8uhuv8_k$(namespaceURI_0);
    var tmp$ret$11 = isInterface(tmp_1, Iterator) ? tmp_1 : THROW_CCE();
    var tmp_2 = asSequence(tmp$ret$11);
    var registeredPrefix = firstOrNull(filterNot(tmp_2, XmlEncoderBase$ensureNamespace$lambda(isAttr)));
    var tmp_3;
    if (!(registeredPrefix == null)) {
      tmp_3 = copy(qName, registeredPrefix);
    } else if (!(registeredNamespace == null)) {
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      var prefix = qName.getPrefix_bu8bd4_k$();
      var lastDigitIdx = prefix.length;
      while (lastDigitIdx > 0 ? isDigit(charSequenceGet(prefix, lastDigitIdx - 1 | 0)) : false) {
        lastDigitIdx = lastDigitIdx - 1 | 0;
      }
      var prefixBase;
      var prefixStart;
      if (lastDigitIdx === 0) {
        prefixBase = 'ns';
        prefixStart = 0;
      } else if (lastDigitIdx < prefix.length) {
        // Inline function 'kotlin.text.substring' call
        var endIndex = lastDigitIdx;
        // Inline function 'kotlin.js.asDynamic' call
        prefixBase = prefix.substring(0, endIndex);
        // Inline function 'kotlin.text.substring' call
        var startIndex = lastDigitIdx;
        // Inline function 'kotlin.js.asDynamic' call
        var tmp$ret$16 = prefix.substring(startIndex);
        prefixStart = toInt(tmp$ret$16);
      } else {
        prefixBase = prefix;
        prefixStart = 0;
      }
      var tmp$ret$18;
      $l$block_0: {
        // Inline function 'kotlin.sequences.first' call
        var tmp_4 = asSequence_1(numberRangeToNumber(prefixStart, IntCompanionObject_getInstance().get_MAX_VALUE_54a9lf_k$()));
        var tmp0_iterator_0 = map(tmp_4, XmlEncoderBase$ensureNamespace$lambda_0(prefixBase)).iterator_jk1svi_k$();
        while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
          var element_0 = tmp0_iterator_0.next_20eer_k$();
          // Inline function 'nl.adaptivity.xmlutil.serialization.XmlEncoderBase.ensureNamespace.<anonymous>' call
          if ($this.target_1.getNamespaceUri_buhtgt_k$(element_0) == null) {
            tmp$ret$18 = element_0;
            break $l$block_0;
          }
        }
        throw NoSuchElementException_init_$Create$('Sequence contains no element matching the predicate.');
      }
      var newPrefix = tmp$ret$18;
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp$ret$19 = qName.getNamespaceURI_665tvr_k$();
      $this.target_1.namespaceAttr_vkifxg_k$(newPrefix, tmp$ret$19);
      tmp_3 = copy(qName, newPrefix);
    } else {
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      var tmp_5 = qName.getPrefix_bu8bd4_k$();
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp$ret$21 = qName.getNamespaceURI_665tvr_k$();
      $this.target_1.namespaceAttr_vkifxg_k$(tmp_5, tmp$ret$21);
      tmp_3 = qName;
    }
    return tmp_3;
  }
  function smartWriteAttribute($this, name, value) {
    var argPrefix = name.getPrefix_bu8bd4_k$();
    var resolvedNamespace = $this.target_1.getNamespaceUri_buhtgt_k$(argPrefix);
    var tmp;
    // Inline function 'kotlin.text.isEmpty' call
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var this_0 = name.getNamespaceURI_665tvr_k$();
    if (charSequenceLength(this_0) === 0) {
      // Inline function 'nl.adaptivity.xmlutil.localPart' call
      var tmp$ret$2 = name.getLocalPart_k3cdyw_k$();
      tmp = QName_init_$Create$(tmp$ret$2);
    } else {
      // Inline function 'kotlin.text.isEmpty' call
      if (charSequenceLength(argPrefix) === 0) {
        // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
        name.getNamespaceURI_665tvr_k$();
        tmp = ensureNamespace_1($this, name, true);
      } else {
        if (!(resolvedNamespace == null)) {
          tmp = name;
        } else {
          tmp = ensureNamespace_1($this, name, true);
        }
      }
    }
    var effectiveQName = tmp;
    writeAttribute($this.target_1, effectiveQName, value);
  }
  function PolymorphicEncoder($outer, xmlDescriptor) {
    this.$this_3 = $outer;
    TagEncoder.call(this, $outer, xmlDescriptor, null, false);
  }
  protoOf(PolymorphicEncoder).defer_nc8zz5_k$ = function (index, deferred) {
    deferred(this);
  };
  protoOf(PolymorphicEncoder).writeBegin_2sohtm_k$ = function () {
    if (equals(this.get_xmlDescriptor_br8xbx_k$().get_polymorphicMode_4qzik0_k$(), TAG_getInstance())) {
      protoOf(TagEncoder).writeBegin_2sohtm_k$.call(this);
    }
  };
  protoOf(PolymorphicEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    var isMixed = this.get_xmlDescriptor_br8xbx_k$().get_outputKind_tsa18e_k$().equals(OutputKind_Mixed_getInstance());
    var polymorphicMode = this.get_xmlDescriptor_br8xbx_k$().get_polymorphicMode_4qzik0_k$();
    if (index === 0) {
      if (equals(polymorphicMode, TAG_getInstance())) {
        var childDesc = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
        switch (childDesc.get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$()) {
          case 1:
            this.doWriteAttribute_noj7dr_k$(0, childDesc.get_tagName_ocsgis_k$(), Companion_getInstance_6().tryShortenTypeName_6ygas6_k$(value, this.get_xmlDescriptor_br8xbx_k$().get_parentSerialName_a9taha_k$()));
            break;
          case 3:
          case 4:
          case 0:
            // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call

            var this_0 = this.get_target_juba8q_k$();
            var qName = childDesc.get_tagName_ocsgis_k$();
            // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call

            var nsUri = qName.getNamespaceURI_665tvr_k$();
            var localName = qName.getLocalPart_k3cdyw_k$();
            var prefix = qName.getPrefix_bu8bd4_k$();
            smartStartTag(this_0, nsUri, localName, prefix);
            // Inline function 'nl.adaptivity.xmlutil.serialization.PolymorphicEncoder.encodeStringElement.<anonymous>' call

            this_0.text_x72pul_k$(value);
            this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
            break;
          case 2:
            throw new XmlSerialException('the type for a polymorphic child cannot be a text');
        }
      }
    } else {
      if (equals(polymorphicMode, TRANSPARENT_getInstance())) {
        if (isMixed) {
          this.get_target_juba8q_k$().text_x72pul_k$(value);
        } else {
          // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
          var this_1 = this.get_target_juba8q_k$();
          var qName_0 = this.get_serialName_u2rqhk_k$();
          // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
          var nsUri_0 = qName_0.getNamespaceURI_665tvr_k$();
          var localName_0 = qName_0.getLocalPart_k3cdyw_k$();
          var prefix_0 = qName_0.getPrefix_bu8bd4_k$();
          smartStartTag(this_1, nsUri_0, localName_0, prefix_0);
          // Inline function 'nl.adaptivity.xmlutil.serialization.PolymorphicEncoder.encodeStringElement.<anonymous>' call
          this_1.text_x72pul_k$(value);
          this_1.endTag_yzukbv_k$(nsUri_0, localName_0, prefix_0);
        }
      } else {
        if (polymorphicMode instanceof ATTR) {
          // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
          var this_2 = this.get_target_juba8q_k$();
          var qName_1 = this.get_serialName_u2rqhk_k$();
          // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
          var nsUri_1 = qName_1.getNamespaceURI_665tvr_k$();
          var localName_1 = qName_1.getLocalPart_k3cdyw_k$();
          var prefix_1 = qName_1.getPrefix_bu8bd4_k$();
          smartStartTag(this_2, nsUri_1, localName_1, prefix_1);
          // Inline function 'nl.adaptivity.xmlutil.serialization.PolymorphicEncoder.encodeStringElement.<anonymous>' call
          var attrQName = this.ensureNamespace_z1zvq1_k$(typeQName(this.get_config_c0698r_k$().get_policy_i5q4hn_k$(), elementDescriptor), true);
          smartWriteAttribute(this.$this_3, polymorphicMode.get_name_woqyms_k$(), toCName(attrQName));
          this_2.text_x72pul_k$(value);
          this_2.endTag_yzukbv_k$(nsUri_1, localName_1, prefix_1);
        } else {
          protoOf(TagEncoder).encodeStringElement_f10ojn_k$.call(this, elementDescriptor, index, value);
        }
      }
    }
  };
  protoOf(PolymorphicEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    var childXmlDescriptor = this.get_xmlDescriptor_br8xbx_k$().getPolymorphicDescriptor_f2x8gl_k$(serializer.get_descriptor_wjt6a0_k$().get_serialName_u2rqhk_k$());
    var tmp = this.get_xmlDescriptor_br8xbx_k$().get_polymorphicMode_4qzik0_k$();
    var tmp0_safe_receiver = tmp instanceof ATTR ? tmp : null;
    var discriminatorName = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_name_woqyms_k$();
    var encoder = new XmlEncoder(this.$this_3, childXmlDescriptor, index, discriminatorName);
    serializer.serialize_5ase3y_k$(encoder, value);
  };
  protoOf(PolymorphicEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
    if (equals(this.get_xmlDescriptor_br8xbx_k$().get_polymorphicMode_4qzik0_k$(), TAG_getInstance())) {
      protoOf(TagEncoder).endStructure_1xqz0n_k$.call(this, descriptor);
    }
  };
  function AttributeMapEncoder($outer, xmlDescriptor) {
    this.$this_3 = $outer;
    TagEncoder.call(this, $outer, xmlDescriptor, null);
  }
  protoOf(AttributeMapEncoder).defer_nc8zz5_k$ = function (index, deferred) {
    deferred(this);
  };
  protoOf(AttributeMapEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    var tmp0_subject = index % 2 | 0;
    if (tmp0_subject === 0)
      this.entryKey_1 = QName_init_$Create$(value);
    else if (tmp0_subject === 1) {
      smartWriteAttribute(this.$this_3, _get_entryKey__gkoau6(this), value);
    }
  };
  protoOf(AttributeMapEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    if ((index % 2 | 0) === 0) {
      var effectiveSerializer = elementDescriptor.effectiveSerializationStrategy_su7rny_k$(serializer);
      var tmp = this;
      var tmp_0;
      if (equals(effectiveSerializer, XmlQNameSerializer_getInstance())) {
        tmp_0 = value instanceof QName ? value : THROW_CCE();
      } else {
        // Inline function 'kotlin.apply' call
        var this_0 = new PrimitiveEncoder(this.$this_3, this.get_serializersModule_piitvg_k$(), this.get_xmlDescriptor_br8xbx_k$());
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.AttributeMapEncoder.encodeSerializableElement.<anonymous>' call
        this_0.encodeSerializableValue_3uuzip_k$(effectiveSerializer, value);
        tmp_0 = QName_init_$Create$(this_0.output_1.toString());
      }
      tmp.entryKey_1 = tmp_0;
    } else {
      var effectiveSerializer_0 = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(1).effectiveSerializationStrategy_su7rny_k$(serializer);
      // Inline function 'kotlin.apply' call
      var this_1 = new PrimitiveEncoder(this.$this_3, this.get_serializersModule_piitvg_k$(), this.get_xmlDescriptor_br8xbx_k$());
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.AttributeMapEncoder.encodeSerializableElement.<anonymous>' call
      this_1.encodeSerializableValue_3uuzip_k$(effectiveSerializer_0, value);
      var entryValue = this_1.output_1.toString();
      this.doWriteAttribute_noj7dr_k$(index, _get_entryKey__gkoau6(this), entryValue);
    }
  };
  protoOf(AttributeMapEncoder).writeBegin_2sohtm_k$ = function () {
  };
  protoOf(AttributeMapEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
  };
  function AttributeListEncoder($outer, xmlDescriptor, elementIndex) {
    this.$this_3 = $outer;
    TagEncoder.call(this, $outer, xmlDescriptor, null);
    this.elementIndex_1 = elementIndex;
    this.valueBuilder_1 = StringBuilder_init_$Create$();
    this.delimiter_1 = first_0(xmlDescriptor.get_delimiters_6jqjhn_k$());
    var d = xmlDescriptor;
    var ok;
    do {
      d = d.getElementDescriptor_ncda77_k$(0);
      ok = d.get_outputKind_tsa18e_k$();
    }
     while (ok.equals(OutputKind_Inline_getInstance()));
    if (!ok.equals(OutputKind_Attribute_getInstance()) ? !ok.equals(OutputKind_Text_getInstance()) : false) {
      throw IllegalArgumentException_init_$Create$('An xml list stored in an attribute must store atomics, not structs');
    }
  }
  protoOf(AttributeListEncoder).defer_nc8zz5_k$ = function (index, deferred) {
    return deferred(this);
  };
  protoOf(AttributeListEncoder).writeBegin_2sohtm_k$ = function () {
  };
  protoOf(AttributeListEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    var encoder = new PrimitiveEncoder(this.$this_3, this.get_serializersModule_piitvg_k$(), elementDescriptor);
    encoder.encodeSerializableValue_3uuzip_k$(serializer, value);
    this.encodeStringElement_f10ojn_k$(elementDescriptor, index, encoder.output_1.toString());
  };
  protoOf(AttributeListEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    // Inline function 'kotlin.text.isNotEmpty' call
    var this_0 = this.valueBuilder_1;
    if (charSequenceLength(this_0) > 0) {
      this.valueBuilder_1.append_22ad7x_k$(this.delimiter_1);
    }
    this.valueBuilder_1.append_22ad7x_k$(value);
  };
  protoOf(AttributeListEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
    this.doWriteAttribute_noj7dr_k$(this.elementIndex_1, this.get_xmlDescriptor_br8xbx_k$().get_tagName_ocsgis_k$(), this.valueBuilder_1.toString());
  };
  function ListEncoder($outer, xmlDescriptor, listChildIdx, discriminatorName) {
    this.$this_3 = $outer;
    TagEncoder.call(this, $outer, xmlDescriptor, discriminatorName, false);
    this.listChildIdx_1 = listChildIdx;
  }
  protoOf(ListEncoder).defer_nc8zz5_k$ = function (index, deferred) {
    deferred(this);
  };
  protoOf(ListEncoder).writeBegin_2sohtm_k$ = function () {
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isListEluded_vahr8a_k$()) {
      var childName = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0).get_tagName_ocsgis_k$();
      protoOf(TagEncoder).writeBegin_2sohtm_k$.call(this);
      var tagName = this.get_serialName_u2rqhk_k$();
      var tmp;
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      var tmp_0 = tagName.getPrefix_bu8bd4_k$();
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      if (!(tmp_0 === childName.getPrefix_bu8bd4_k$())) {
        var tmp_1 = this.get_target_juba8q_k$();
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        var tmp$ret$2 = childName.getPrefix_bu8bd4_k$();
        var tmp_2 = tmp_1.getNamespaceUri_buhtgt_k$(tmp$ret$2);
        // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
        tmp = !(tmp_2 === childName.getNamespaceURI_665tvr_k$());
      } else {
        tmp = false;
      }
      if (tmp) {
        var tmp_3 = this.get_target_juba8q_k$();
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        var tmp_4 = childName.getPrefix_bu8bd4_k$();
        // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
        var tmp$ret$5 = childName.getNamespaceURI_665tvr_k$();
        tmp_3.namespaceAttr_vkifxg_k$(tmp_4, tmp$ret$5);
      }
    }
  };
  protoOf(ListEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    var childDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
    var tmp0_subject = elementDescriptor.effectiveSerializationStrategy_su7rny_k$(serializer);
    if (equals(tmp0_subject, CompactFragmentSerializer_getInstance()))
      if (getValueChild(_get_parentXmlDescriptor__yo818r_0(this)) === this.listChildIdx_1) {
        var tmp = CompactFragmentSerializer_getInstance();
        tmp.writeCompactFragmentContent_oj5bm5_k$(this, (!(value == null) ? isInterface(value, ICompactFragment) : false) ? value : THROW_CCE());
      } else {
        serializer.serialize_5ase3y_k$(new XmlEncoder(this.$this_3, childDescriptor, index), value);
      }
     else {
      serializer.serialize_5ase3y_k$(new XmlEncoder(this.$this_3, childDescriptor, index), value);
    }
  };
  protoOf(ListEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    if (index > 0) {
      (new XmlEncoder(this.$this_3, elementDescriptor, index)).encodeString_424b5v_k$(value);
    }
  };
  protoOf(ListEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
    if (!this.get_xmlDescriptor_br8xbx_k$().get_isListEluded_vahr8a_k$()) {
      protoOf(TagEncoder).endStructure_1xqz0n_k$.call(this, descriptor);
    }
  };
  function MapEncoder($outer, xmlDescriptor, discriminatorName) {
    discriminatorName = discriminatorName === VOID ? null : discriminatorName;
    this.$this_3 = $outer;
    TagEncoder.call(this, $outer, xmlDescriptor, discriminatorName);
    this.keyValue_1 = null;
  }
  protoOf(MapEncoder).defer_nc8zz5_k$ = function (index, deferred) {
    deferred(this);
  };
  protoOf(MapEncoder).encodeStringElement_f10ojn_k$ = function (elementDescriptor, index, value) {
    var tmp0_subject = index % 2 | 0;
    if (tmp0_subject === 0) {
      this.keySerializer_1 = serializer_0(StringCompanionObject_getInstance());
      this.keyValue_1 = value;
    } else if (tmp0_subject === 1) {
      this.encodeSerializableElement_53flzi_k$(this.get_xmlDescriptor_br8xbx_k$(), index, serializer_0(StringCompanionObject_getInstance()), value);
    }
  };
  protoOf(MapEncoder).encodeSerializableElement_53flzi_k$ = function (elementDescriptor, index, serializer, value) {
    if ((index % 2 | 0) === 0) {
      this.keySerializer_1 = elementDescriptor.effectiveSerializationStrategy_su7rny_k$(serializer);
      this.keyValue_1 = value;
    } else {
      var valueDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(1);
      var effectiveSerializer = valueDescriptor.effectiveSerializationStrategy_su7rny_k$(serializer);
      var keyDescriptor = this.get_xmlDescriptor_br8xbx_k$().getElementDescriptor_ncda77_k$(0);
      if (_get_mapDescriptor__1b9wli(this).get_isValueCollapsed_3vm2k9_k$()) {
        this.defer_nc8zz5_k$(index, XmlEncoderBase$MapEncoder$encodeSerializableElement$lambda(this, valueDescriptor, this.$this_3, keyDescriptor, effectiveSerializer, value));
      } else {
        // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
        var this_0 = this.get_target_juba8q_k$();
        var qName = _get_mapDescriptor__1b9wli(this).get_entryName_l031w_k$();
        // Inline function 'nl.adaptivity.xmlutil.smartStartTag' call
        var nsUri = qName.getNamespaceURI_665tvr_k$();
        var localName = qName.getLocalPart_k3cdyw_k$();
        var prefix = qName.getPrefix_bu8bd4_k$();
        smartStartTag(this_0, nsUri, localName, prefix);
        // Inline function 'nl.adaptivity.xmlutil.serialization.MapEncoder.encodeSerializableElement.<anonymous>' call
        var keyEncoder = new XmlEncoder(this.$this_3, keyDescriptor, index - 1 | 0);
        var tmp = _get_keySerializer__nwm36o(this);
        keyEncoder.encodeSerializableValue_3uuzip_k$(isInterface(tmp, SerializationStrategy) ? tmp : THROW_CCE(), this.keyValue_1);
        effectiveSerializer.serialize_5ase3y_k$(new XmlEncoder(this.$this_3, valueDescriptor, index), value);
        this_0.endTag_yzukbv_k$(nsUri, localName, prefix);
      }
    }
  };
  protoOf(MapEncoder).writeBegin_2sohtm_k$ = function () {
    if (!_get_mapDescriptor__1b9wli(this).get_isListEluded_vahr8a_k$()) {
      protoOf(TagEncoder).writeBegin_2sohtm_k$.call(this);
    }
  };
  protoOf(MapEncoder).endStructure_1xqz0n_k$ = function (descriptor) {
    if (!_get_mapDescriptor__1b9wli(this).get_isListEluded_vahr8a_k$()) {
      protoOf(TagEncoder).endStructure_1xqz0n_k$.call(this, descriptor);
    }
  };
  function XmlEncoderBase$ensureNamespace$lambda($isAttr) {
    return function (it) {
      var tmp;
      if ($isAttr) {
        // Inline function 'kotlin.text.isEmpty' call
        tmp = charSequenceLength(it) === 0;
      } else {
        tmp = false;
      }
      return tmp;
    };
  }
  function XmlEncoderBase$ensureNamespace$lambda_0($prefixBase) {
    return function (it) {
      return $prefixBase + it;
    };
  }
  function XmlEncoderBase(context, config, target) {
    XmlCodecBase.call(this, context, config);
    this.target_1 = target;
    this.nextAutoPrefixNo_1 = 1;
  }
  protoOf(XmlEncoderBase).get_target_juba8q_k$ = function () {
    return this.target_1;
  };
  protoOf(XmlEncoderBase).get_namespaceContext_n7n1ib_k$ = function () {
    return this.target_1.get_namespaceContext_n7n1ib_k$();
  };
  protoOf(XmlEncoderBase).getCompositeEncoder_q789fh_k$ = function (xmlDescriptor, elementIndex, discriminatorName) {
    var tmp0_subject = xmlDescriptor.get_serialKind_u2thhr_k$();
    var tmp;
    if (tmp0_subject instanceof PrimitiveKind) {
      throw AssertionError_init_$Create$('A primitive is not a composite');
    } else {
      if (equals(tmp0_subject, CONTEXTUAL_getInstance()) ? true : equals(tmp0_subject, MAP_getInstance())) {
        var tmp_0;
        if (xmlDescriptor.get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$() === 1) {
          var valueType = xmlDescriptor.getElementDescriptor_ncda77_k$(1);
          if (!valueType.get_effectiveOutputKind_uvd9nx_k$().get_isTextual_oislr4_k$() ? !equals(valueType.get_overriddenSerializer_2zhhv3_k$(), XmlQNameSerializer_getInstance()) : false) {
            throw new XmlSerialException('Values of an attribute map must be textual or a qname');
          }
          var keyType = xmlDescriptor.getElementDescriptor_ncda77_k$(0);
          if (!equals(keyType.get_overriddenSerializer_2zhhv3_k$(), XmlQNameSerializer_getInstance()) ? !keyType.get_effectiveOutputKind_uvd9nx_k$().get_isTextual_oislr4_k$() : false) {
            throw new XmlSerialException('The keys of an attribute map must be string or qname');
          }
          tmp_0 = new AttributeMapEncoder(this, xmlDescriptor);
        } else {
          tmp_0 = new MapEncoder(this, xmlDescriptor instanceof XmlMapDescriptor ? xmlDescriptor : THROW_CCE(), discriminatorName);
        }
        tmp = tmp_0;
      } else {
        if ((equals(tmp0_subject, CLASS_getInstance()) ? true : equals(tmp0_subject, OBJECT_getInstance())) ? true : equals(tmp0_subject, ENUM_getInstance())) {
          tmp = new TagEncoder(this, xmlDescriptor, discriminatorName);
        } else {
          if (equals(tmp0_subject, LIST_getInstance())) {
            var tmp_1;
            if (xmlDescriptor.get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$() === 1) {
              tmp_1 = new AttributeListEncoder(this, xmlDescriptor instanceof XmlListDescriptor ? xmlDescriptor : THROW_CCE(), elementIndex);
            } else {
              tmp_1 = new ListEncoder(this, xmlDescriptor instanceof XmlListDescriptor ? xmlDescriptor : THROW_CCE(), elementIndex, discriminatorName);
            }
            tmp = tmp_1;
          } else {
            if (tmp0_subject instanceof PolymorphicKind) {
              tmp = new PolymorphicEncoder(this, xmlDescriptor instanceof XmlPolymorphicDescriptor ? xmlDescriptor : THROW_CCE());
            } else {
              noWhenBranchMatchedException();
            }
          }
        }
      }
    }
    return tmp;
  };
  function Companion_0() {
    Companion_instance_0 = this;
  }
  protoOf(Companion_0).declRequestedName_qyg2zk_k$ = function (_this__u8e3s4, parentNamespace) {
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = _this__u8e3s4.get_annotations_20dirp_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlSerialName) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var tmp0_safe_receiver = tmp$ret$0;
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return toQName(tmp0_safe_receiver, _this__u8e3s4.get_serialName_u2rqhk_k$(), parentNamespace);
    }
    return toQname(substringAfterLast(_this__u8e3s4.get_serialName_u2rqhk_k$(), _Char___init__impl__6a9atx(46)), parentNamespace);
  };
  protoOf(Companion_0).expandTypeNameIfNeeded_9la2i4_k$ = function (_this__u8e3s4, parentType) {
    if (parentType == null ? true : !startsWith(_this__u8e3s4, _Char___init__impl__6a9atx(46)))
      return _this__u8e3s4;
    // Inline function 'kotlin.let' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.Companion.expandTypeNameIfNeeded.<anonymous>' call
    var idx = lastIndexOf(parentType, _Char___init__impl__6a9atx(46));
    if (idx < 0) {
      // Inline function 'kotlin.text.substring' call
      // Inline function 'kotlin.js.asDynamic' call
      return _this__u8e3s4.substring(1);
    }
    // Inline function 'kotlin.text.substring' call
    // Inline function 'kotlin.js.asDynamic' call
    var parentPkg = parentType.substring(0, idx);
    return parentPkg + _this__u8e3s4;
  };
  protoOf(Companion_0).tryShortenTypeName_6ygas6_k$ = function (_this__u8e3s4, parentType) {
    if (parentType == null)
      return _this__u8e3s4;
    // Inline function 'kotlin.let' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.Companion.tryShortenTypeName.<anonymous>' call
    var idx = lastIndexOf(parentType, _Char___init__impl__6a9atx(46));
    if (idx < 0)
      return _this__u8e3s4;
    // Inline function 'kotlin.text.substring' call
    // Inline function 'kotlin.js.asDynamic' call
    var parentPkg = parentType.substring(0, idx);
    if (startsWith_0(_this__u8e3s4, parentPkg) ? indexOf(_this__u8e3s4, _Char___init__impl__6a9atx(46), parentPkg.length + 1 | 0) < 0 : false) {
      // Inline function 'kotlin.text.substring' call
      var startIndex = parentPkg.length;
      // Inline function 'kotlin.js.asDynamic' call
      return _this__u8e3s4.substring(startIndex);
    }
    return _this__u8e3s4;
  };
  var Companion_instance_0;
  function Companion_getInstance_6() {
    if (Companion_instance_0 == null)
      new Companion_0();
    return Companion_instance_0;
  }
  function XmlCodec($outer, xmlDescriptor) {
    this.$this_1 = $outer;
    this.xmlDescriptor_1 = xmlDescriptor;
  }
  protoOf(XmlCodec).get_xmlDescriptor_br8xbx_k$ = function () {
    return this.xmlDescriptor_1;
  };
  protoOf(XmlCodec).get_serialName_u2rqhk_k$ = function () {
    return this.xmlDescriptor_1.get_tagName_ocsgis_k$();
  };
  function XmlTagCodec($outer, xmlDescriptor) {
    this.$this_1 = $outer;
    this.xmlDescriptor_1 = xmlDescriptor;
  }
  protoOf(XmlTagCodec).get_xmlDescriptor_br8xbx_k$ = function () {
    return this.xmlDescriptor_1;
  };
  protoOf(XmlTagCodec).get_config_c0698r_k$ = function () {
    return this.$this_1.config_1;
  };
  protoOf(XmlTagCodec).get_serializersModule_piitvg_k$ = function () {
    return this.$this_1.serializersModule_1;
  };
  protoOf(XmlTagCodec).get_serialName_u2rqhk_k$ = function () {
    return this.xmlDescriptor_1.get_tagName_ocsgis_k$();
  };
  protoOf(XmlTagCodec).normalize_axto4g_k$ = function (_this__u8e3s4) {
    return copy(_this__u8e3s4, '');
  };
  function XmlCodecBase(serializersModule, config) {
    Companion_getInstance_6();
    this.serializersModule_1 = serializersModule;
    this.config_1 = config;
  }
  protoOf(XmlCodecBase).get_serializersModule_piitvg_k$ = function () {
    return this.serializersModule_1;
  };
  protoOf(XmlCodecBase).get_config_c0698r_k$ = function () {
    return this.config_1;
  };
  function Builder_init_$Init$(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    policy = policy === VOID ? null : policy;
    // Inline function 'nl.adaptivity.xmlutil.serialization.asRecoverable' call
    var tmp = XmlConfig$Builder$_init_$lambda_e0q2kb(unknownChildHandler);
    var tmp$ret$0 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0(tmp);
    Builder.call($this, repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, tmp$ret$0, policy);
    return $this;
  }
  function Builder_init_$Create$(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy) {
    return Builder_init_$Init$(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, objectCreate(protoOf(Builder)));
  }
  function Builder_init_$Init$_0(config, $this) {
    var tmp = config.policy_1;
    var tmp0_safe_receiver = tmp instanceof DefaultXmlSerializationPolicy ? tmp : null;
    Builder.call($this, config.repairNamespaces_1, config.xmlDeclMode_1, config.indentString_1, tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_autoPolymorphic_pwin2a_k$(), null, config.policy_1);
    $this.nilAttribute_1 = config.nilAttribute_1;
    $this.isInlineCollapsed_1 = config.isInlineCollapsed_1;
    $this.isCollectingNSAttributes_1 = config.isCollectingNSAttributes_1;
    $this.xmlVersion_1 = config.xmlVersion_1;
    return $this;
  }
  function Builder_init_$Create$_0(config) {
    return Builder_init_$Init$_0(config, objectCreate(protoOf(Builder)));
  }
  function Builder_init_$Init$_1(repairNamespaces, omitXmlDecl, indentString, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_NONRECOVERABLE_CHILD_HANDLER_1 : unknownChildHandler;
    var tmp = omitXmlDecl ? XmlDeclMode_None_getInstance() : XmlDeclMode_Minimal_getInstance();
    // Inline function 'nl.adaptivity.xmlutil.serialization.asRecoverable' call
    var tmp_0 = XmlConfig$Builder$_init_$lambda_e0q2kb_0(unknownChildHandler);
    var tmp$ret$0 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_0(tmp_0);
    Builder.call($this, repairNamespaces, tmp, indentString, autoPolymorphic, tmp$ret$0);
    return $this;
  }
  function Builder_init_$Create$_1(repairNamespaces, omitXmlDecl, indentString, autoPolymorphic, unknownChildHandler) {
    return Builder_init_$Init$_1(repairNamespaces, omitXmlDecl, indentString, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(Builder)));
  }
  function Builder_init_$Init$_2(repairNamespaces, omitXmlDecl, indent, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_NONRECOVERABLE_CHILD_HANDLER_1 : unknownChildHandler;
    Builder_init_$Init$_1(repairNamespaces, omitXmlDecl, repeat(' ', indent), autoPolymorphic, unknownChildHandler, $this);
    return $this;
  }
  function Builder_init_$Create$_2(repairNamespaces, omitXmlDecl, indent, autoPolymorphic, unknownChildHandler) {
    return Builder_init_$Init$_2(repairNamespaces, omitXmlDecl, indent, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(Builder)));
  }
  function Builder_init_$Init$_3(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    // Inline function 'nl.adaptivity.xmlutil.serialization.asRecoverable' call
    var tmp = XmlConfig$Builder$_init_$lambda_e0q2kb_1(unknownChildHandler);
    var tmp$ret$0 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_1(tmp);
    Builder_init_$Init$_4(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, tmp$ret$0, $this);
    return $this;
  }
  function Builder_init_$Create$_3(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, unknownChildHandler) {
    return Builder_init_$Init$_3(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(Builder)));
  }
  function Builder_init_$Init$_4(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_UNKNOWN_CHILD_HANDLER_1 : unknownChildHandler;
    Builder.call($this, repairNamespaces, xmlDeclMode, repeat(' ', indent), autoPolymorphic, unknownChildHandler);
    return $this;
  }
  function Builder_init_$Create$_4(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, unknownChildHandler) {
    return Builder_init_$Init$_4(repairNamespaces, xmlDeclMode, indent, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(Builder)));
  }
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_0(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_0).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_1(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_1).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function XmlConfig$Builder$_init_$lambda_e0q2kb($this) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $this(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function XmlConfig$Builder$_init_$lambda_e0q2kb_0($this) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $this(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function XmlConfig$Builder$_init_$lambda_e0q2kb_1($this) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $this(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function _get_DEFAULT_IGNORED_NAMESPACES__523eug($this) {
    return $this.DEFAULT_IGNORED_NAMESPACES_1;
  }
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_2(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_2).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_3(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_3).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_4(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_4).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function XmlConfig$Companion$DEFAULT_UNKNOWN_CHILD_HANDLER$lambda(input, inputKind, descriptor, name, candidates) {
    var tmp;
    var tmp_0;
    if (inputKind.equals(InputKind_Attribute_getInstance())) {
      var tmp_1 = Companion_getInstance_7().DEFAULT_IGNORED_NAMESPACES_1;
      var tmp_2;
      if (name == null) {
        tmp_2 = null;
      } else {
        // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
        tmp_2 = name.getNamespaceURI_665tvr_k$();
      }
      tmp_0 = contains(tmp_1, tmp_2);
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      tmp = emptyList();
    } else {
      var tmp_3 = input.get_locationInfo_3kny30_k$();
      var tmp_4 = descriptor.get_serialDescriptor_vvwkac_k$().get_serialName_u2rqhk_k$();
      var tmp_5 = descriptor.get_tagName_ocsgis_k$();
      throw new UnknownXmlFieldException(tmp_3, '(' + tmp_4 + ') ' + tmp_5 + '/' + toString(name == null ? '<CDATA>' : name) + ' (' + inputKind + ')', candidates);
    }
    return tmp;
  }
  function XmlConfig$Companion$IGNORING_UNKNOWN_CHILD_HANDLER$lambda(_anonymous_parameter_0__qggqh8, _anonymous_parameter_1__qggqgd, _anonymous_parameter_2__qggqfi, _anonymous_parameter_3__qggqen, _anonymous_parameter_4__qggqds) {
    return emptyList();
  }
  function XmlConfig$Companion$IGNORING_UNKNOWN_NAMESPACE_HANDLER$lambda(input, inputKind, descriptor, name, candidates) {
    var inputNs = input.get_namespaceURI_g6nmhy_k$();
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var contextNs = descriptor.get_tagName_ocsgis_k$().getNamespaceURI_665tvr_k$();
    var tmp;
    var tmp_0;
    if (!(inputNs === contextNs)) {
      tmp_0 = true;
    } else {
      var tmp_1;
      if (inputKind.equals(InputKind_Attribute_getInstance())) {
        var tmp_2;
        if (name == null) {
          tmp_2 = null;
        } else {
          // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
          tmp_2 = name.getNamespaceURI_665tvr_k$();
        }
        tmp_1 = tmp_2 === XMLConstants_getInstance().get_XSI_NS_URI_vuj20k_k$();
      } else {
        tmp_1 = false;
      }
      tmp_0 = tmp_1;
    }
    if (tmp_0) {
      tmp = emptyList();
    } else {
      var tmp_3 = input.get_locationInfo_3kny30_k$();
      var tmp_4 = descriptor.get_serialDescriptor_vvwkac_k$().get_serialName_u2rqhk_k$();
      var tmp_5 = descriptor.get_tagName_ocsgis_k$();
      throw new UnknownXmlFieldException(tmp_3, '(' + tmp_4 + ') ' + tmp_5 + '/' + toString(name == null ? '<CDATA>' : name) + ' (' + inputKind + ')', candidates);
    }
    return tmp;
  }
  function XmlConfig$Companion$DEFAULT_NONRECOVERABLE_CHILD_HANDLER$lambda(input, inputKind, name, candidates) {
    var tmp = input.get_locationInfo_3kny30_k$();
    var tmp1_elvis_lhs = name == null ? null : name.toString();
    throw new UnknownXmlFieldException(tmp, tmp1_elvis_lhs == null ? '<CDATA>' : tmp1_elvis_lhs, candidates);
  }
  function XmlConfig_init_$Init$(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_UNKNOWN_CHILD_HANDLER_1 : unknownChildHandler;
    XmlConfig.call($this, repairNamespaces, xmlDeclMode, indentString, DefaultXmlSerializationPolicy_init_$Create$(false, autoPolymorphic, VOID, unknownChildHandler));
    return $this;
  }
  function XmlConfig_init_$Create$(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler) {
    return XmlConfig_init_$Init$(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(XmlConfig)));
  }
  function XmlConfig_init_$Init$_0(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, nilAttribute, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_UNKNOWN_CHILD_HANDLER_1 : unknownChildHandler;
    nilAttribute = nilAttribute === VOID ? null : nilAttribute;
    var tmp0_safe_receiver = policy instanceof DefaultXmlSerializationPolicy ? policy : null;
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.XmlConfig.<init>.<anonymous>' call
      tmp = (autoPolymorphic == null ? unknownChildHandler == null : false) ? tmp0_safe_receiver.copy$default_rf9pgz_k$() : autoPolymorphic == null ? tmp0_safe_receiver.copy$default_ajunjl_k$(VOID, VOID, VOID, ensureNotNull(unknownChildHandler)) : unknownChildHandler == null ? tmp0_safe_receiver.copy$default_rf9pgz_k$(VOID, autoPolymorphic) : tmp0_safe_receiver.copy$default_rf9pgz_k$();
    }
    var tmp1_elvis_lhs = tmp;
    XmlConfig.call($this, repairNamespaces, xmlDeclMode, indentString, tmp1_elvis_lhs == null ? policy : tmp1_elvis_lhs, nilAttribute);
    return $this;
  }
  function XmlConfig_init_$Create$_0(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, nilAttribute) {
    return XmlConfig_init_$Init$_0(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, nilAttribute, objectCreate(protoOf(XmlConfig)));
  }
  function _set_isInlineCollapsed__7qdm9b($this, _set____db54di) {
    $this.isInlineCollapsed_1 = _set____db54di;
  }
  function XmlConfig_init_$Init$_1(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    policy = policy === VOID ? DefaultXmlSerializationPolicy_init_$Create$_1(false, autoPolymorphic) : policy;
    // Inline function 'nl.adaptivity.xmlutil.serialization.asRecoverable' call
    var tmp = XmlConfig$_init_$lambda_mfsbo2(unknownChildHandler);
    var tmp$ret$0 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_5(tmp);
    XmlConfig_init_$Init$_0(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, tmp$ret$0, policy, VOID, $this);
    return $this;
  }
  function XmlConfig_init_$Create$_1(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy) {
    return XmlConfig_init_$Init$_1(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy, objectCreate(protoOf(XmlConfig)));
  }
  function XmlConfig_init_$Init$_2(repairNamespaces, omitXmlDecl, indentString, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_NONRECOVERABLE_CHILD_HANDLER_1 : unknownChildHandler;
    var tmp = omitXmlDecl ? XmlDeclMode_None_getInstance() : XmlDeclMode_Minimal_getInstance();
    var tmp_0 = XmlConfig$_init_$lambda_mfsbo2_0(unknownChildHandler);
    XmlConfig_init_$Init$(repairNamespaces, tmp, indentString, autoPolymorphic, new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_6(tmp_0), $this);
    return $this;
  }
  function XmlConfig_init_$Create$_2(repairNamespaces, omitXmlDecl, indentString, autoPolymorphic, unknownChildHandler) {
    return XmlConfig_init_$Init$_2(repairNamespaces, omitXmlDecl, indentString, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(XmlConfig)));
  }
  function XmlConfig_init_$Init$_3(repairNamespaces, omitXmlDecl, indent, autoPolymorphic, unknownChildHandler, $this) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_NONRECOVERABLE_CHILD_HANDLER_1 : unknownChildHandler;
    XmlConfig_init_$Init$_2(repairNamespaces, omitXmlDecl, repeat(' ', indent), autoPolymorphic, unknownChildHandler, $this);
    return $this;
  }
  function XmlConfig_init_$Create$_3(repairNamespaces, omitXmlDecl, indent, autoPolymorphic, unknownChildHandler) {
    return XmlConfig_init_$Init$_3(repairNamespaces, omitXmlDecl, indent, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(XmlConfig)));
  }
  function XmlConfig_init_$Init$_4(builder, $this) {
    builder = builder === VOID ? new Builder() : builder;
    var tmp = builder.repairNamespaces_1;
    var tmp_0 = builder.xmlDeclMode_1;
    var tmp_1 = builder.indentString_1;
    var tmp2_elvis_lhs = builder.policy_1;
    var tmp_2;
    if (tmp2_elvis_lhs == null) {
      var tmp0_elvis_lhs = builder.get_autoPolymorphic_pwin2a_k$();
      var tmp_3 = tmp0_elvis_lhs == null ? false : tmp0_elvis_lhs;
      var tmp_4 = builder.encodeDefault_1;
      var tmp1_elvis_lhs = builder.unknownChildHandler_1;
      tmp_2 = DefaultXmlSerializationPolicy_init_$Create$(false, tmp_3, tmp_4, tmp1_elvis_lhs == null ? Companion_getInstance_7().DEFAULT_UNKNOWN_CHILD_HANDLER_1 : tmp1_elvis_lhs);
    } else {
      tmp_2 = tmp2_elvis_lhs;
    }
    XmlConfig.call($this, tmp, tmp_0, tmp_1, tmp_2, builder.nilAttribute_1, builder.xmlVersion_1);
    $this.isInlineCollapsed_1 = builder.isInlineCollapsed_1;
    $this.isCollectingNSAttributes_1 = builder.isCollectingNSAttributes_1;
    return $this;
  }
  function XmlConfig_init_$Create$_4(builder) {
    return XmlConfig_init_$Init$_4(builder, objectCreate(protoOf(XmlConfig)));
  }
  function Builder(repairNamespaces, xmlDeclMode, indentString, autoPolymorphic, unknownChildHandler, policy) {
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    indentString = indentString === VOID ? '' : indentString;
    autoPolymorphic = autoPolymorphic === VOID ? null : autoPolymorphic;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().DEFAULT_UNKNOWN_CHILD_HANDLER_1 : unknownChildHandler;
    policy = policy === VOID ? null : policy;
    this.repairNamespaces_1 = repairNamespaces;
    this.xmlDeclMode_1 = xmlDeclMode;
    this.indentString_1 = indentString;
    this.unknownChildHandler_1 = unknownChildHandler;
    this.policy_1 = policy;
    this.autoPolymorphic_1 = autoPolymorphic;
    this.encodeDefault_1 = XmlEncodeDefault_ANNOTATED_getInstance();
    this.isInlineCollapsed_1 = true;
    this.nilAttribute_1 = null;
    this.xmlVersion_1 = XmlVersion_XML11_getInstance();
    this.isCollectingNSAttributes_1 = false;
  }
  protoOf(Builder).set_repairNamespaces_l760i5_k$ = function (_set____db54di) {
    this.repairNamespaces_1 = _set____db54di;
  };
  protoOf(Builder).get_repairNamespaces_s0niy6_k$ = function () {
    return this.repairNamespaces_1;
  };
  protoOf(Builder).set_xmlDeclMode_53vlzt_k$ = function (_set____db54di) {
    this.xmlDeclMode_1 = _set____db54di;
  };
  protoOf(Builder).get_xmlDeclMode_lc8ced_k$ = function () {
    return this.xmlDeclMode_1;
  };
  protoOf(Builder).set_indentString_30d8vk_k$ = function (_set____db54di) {
    this.indentString_1 = _set____db54di;
  };
  protoOf(Builder).get_indentString_li4jl2_k$ = function () {
    return this.indentString_1;
  };
  protoOf(Builder).set_unknownChildHandler_eecffw_k$ = function (_set____db54di) {
    this.unknownChildHandler_1 = _set____db54di;
  };
  protoOf(Builder).get_unknownChildHandler_zbenox_k$ = function () {
    return this.unknownChildHandler_1;
  };
  protoOf(Builder).set_policy_8e9pnh_k$ = function (_set____db54di) {
    this.policy_1 = _set____db54di;
  };
  protoOf(Builder).get_policy_i5q4hn_k$ = function () {
    return this.policy_1;
  };
  protoOf(Builder).set_autoPolymorphic_5qudue_k$ = function (value) {
    this.autoPolymorphic_1 = value;
    if (!(value == null)) {
      var tmp = this.policy_1;
      var tmp0_safe_receiver = tmp instanceof DefaultXmlSerializationPolicy ? tmp : null;
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.also' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.Builder.<set-autoPolymorphic>.<anonymous>' call
        this.policy_1 = tmp0_safe_receiver.copy$default_rf9pgz_k$(VOID, value);
      }
    }
  };
  protoOf(Builder).get_autoPolymorphic_pwin2a_k$ = function () {
    var tmp1_elvis_lhs = this.autoPolymorphic_1;
    var tmp;
    if (tmp1_elvis_lhs == null) {
      var tmp_0 = this.policy_1;
      var tmp0_safe_receiver = tmp_0 instanceof DefaultXmlSerializationPolicy ? tmp_0 : null;
      tmp = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_autoPolymorphic_pwin2a_k$();
    } else {
      tmp = tmp1_elvis_lhs;
    }
    return tmp;
  };
  protoOf(Builder).set_encodeDefault_pidnoq_k$ = function (_set____db54di) {
    this.encodeDefault_1 = _set____db54di;
  };
  protoOf(Builder).get_encodeDefault_wsnk66_k$ = function () {
    return this.encodeDefault_1;
  };
  protoOf(Builder).set_isInlineCollapsed_qlimea_k$ = function (_set____db54di) {
    this.isInlineCollapsed_1 = _set____db54di;
  };
  protoOf(Builder).get_isInlineCollapsed_js96yd_k$ = function () {
    return this.isInlineCollapsed_1;
  };
  protoOf(Builder).set_nilAttribute_xi7v23_k$ = function (_set____db54di) {
    this.nilAttribute_1 = _set____db54di;
  };
  protoOf(Builder).get_nilAttribute_2aq3ho_k$ = function () {
    return this.nilAttribute_1;
  };
  protoOf(Builder).set_xmlVersion_1ltenc_k$ = function (_set____db54di) {
    this.xmlVersion_1 = _set____db54di;
  };
  protoOf(Builder).get_xmlVersion_oyodyu_k$ = function () {
    return this.xmlVersion_1;
  };
  protoOf(Builder).set_isCollectingNSAttributes_aagb0a_k$ = function (_set____db54di) {
    this.isCollectingNSAttributes_1 = _set____db54di;
  };
  protoOf(Builder).get_isCollectingNSAttributes_hmccuf_k$ = function () {
    return this.isCollectingNSAttributes_1;
  };
  protoOf(Builder).set_indent_os83lr_k$ = function (value) {
    this.indentString_1 = repeat(' ', value);
  };
  protoOf(Builder).get_indent_etpsj9_k$ = function () {
    return countIndentedLength(this.indentString_1);
  };
  protoOf(Builder).set_omitXmlDecl_nyyuwq_k$ = function (value) {
    var tmp = this;
    tmp.xmlDeclMode_1 = value === true ? XmlDeclMode_None_getInstance() : XmlDeclMode_Auto_getInstance();
  };
  protoOf(Builder).get_omitXmlDecl_tgk0y9_k$ = function () {
    return this.xmlDeclMode_1.equals(XmlDeclMode_None_getInstance());
  };
  protoOf(Builder).recommended_666iz_k$ = function () {
    this.set_autoPolymorphic_5qudue_k$(true);
    this.isInlineCollapsed_1 = true;
    this.set_indent_os83lr_k$(4);
    // Inline function 'nl.adaptivity.xmlutil.serialization.Builder.defaultPolicy' call
    var tmp = this;
    // Inline function 'kotlin.apply' call
    var this_0 = this.policyBuilder_uaepdj_k$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.Builder.recommended.<anonymous>' call
    this_0.set_pedantic_t4kvtm_k$(false);
    this_0.set_typeDiscriminatorName_3n1ea4_k$(new QName(XMLConstants_getInstance().get_XSI_NS_URI_vuj20k_k$(), 'type', XMLConstants_getInstance().get_XSI_PREFIX_uxgit0_k$()));
    this_0.set_encodeDefault_pidnoq_k$(XmlEncodeDefault_ANNOTATED_getInstance());
    this_0.set_throwOnRepeatedElement_z8qqt_k$(true);
    this_0.set_isStrictAttributeNames_euveqh_k$(true);
    tmp.policy_1 = this_0.build_1k0s4u_k$();
  };
  protoOf(Builder).recommended_aze5xl_k$ = function (configurePolicy) {
    this.recommended_666iz_k$();
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    configurePolicy(this.policyBuilder_uaepdj_k$());
  };
  protoOf(Builder).defaultPolicy_n4ouf3_k$ = function (configure) {
    var tmp = this;
    // Inline function 'kotlin.apply' call
    var this_0 = this.policyBuilder_uaepdj_k$();
    // Inline function 'kotlin.contracts.contract' call
    configure(this_0);
    tmp.policy_1 = this_0.build_1k0s4u_k$();
  };
  protoOf(Builder).policyBuilder_uaepdj_k$ = function () {
    var p = this.policy_1;
    var tmp;
    if (p instanceof DefaultXmlSerializationPolicy) {
      tmp = Builder_init_$Create$_5(p);
    } else {
      tmp = new Builder_0();
    }
    return tmp;
  };
  function Companion_1() {
    Companion_instance_1 = this;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.DEFAULT_IGNORED_NAMESPACES_1 = [XMLConstants_getInstance().get_XSI_NS_URI_vuj20k_k$(), XMLConstants_getInstance().get_XML_NS_URI_kvobz7_k$()];
    var tmp_0 = this;
    var tmp_1 = XmlConfig$Companion$DEFAULT_UNKNOWN_CHILD_HANDLER$lambda;
    tmp_0.DEFAULT_UNKNOWN_CHILD_HANDLER_1 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_2(tmp_1);
    var tmp_2 = this;
    var tmp_3 = XmlConfig$Companion$IGNORING_UNKNOWN_CHILD_HANDLER$lambda;
    tmp_2.IGNORING_UNKNOWN_CHILD_HANDLER_1 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_3(tmp_3);
    var tmp_4 = this;
    var tmp_5 = XmlConfig$Companion$IGNORING_UNKNOWN_NAMESPACE_HANDLER$lambda;
    tmp_4.IGNORING_UNKNOWN_NAMESPACE_HANDLER_1 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_4(tmp_5);
    var tmp_6 = this;
    tmp_6.DEFAULT_NONRECOVERABLE_CHILD_HANDLER_1 = XmlConfig$Companion$DEFAULT_NONRECOVERABLE_CHILD_HANDLER$lambda;
  }
  protoOf(Companion_1).get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$ = function () {
    return this.DEFAULT_UNKNOWN_CHILD_HANDLER_1;
  };
  protoOf(Companion_1).get_IGNORING_UNKNOWN_CHILD_HANDLER_xclsh7_k$ = function () {
    return this.IGNORING_UNKNOWN_CHILD_HANDLER_1;
  };
  protoOf(Companion_1).get_IGNORING_UNKNOWN_NAMESPACE_HANDLER_nmhefq_k$ = function () {
    return this.IGNORING_UNKNOWN_NAMESPACE_HANDLER_1;
  };
  protoOf(Companion_1).get_DEFAULT_NONRECOVERABLE_CHILD_HANDLER_7vy82o_k$ = function () {
    return this.DEFAULT_NONRECOVERABLE_CHILD_HANDLER_1;
  };
  var Companion_instance_1;
  function Companion_getInstance_7() {
    if (Companion_instance_1 == null)
      new Companion_1();
    return Companion_instance_1;
  }
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_5(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_5).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_6(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_6).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function XmlConfig$_init_$lambda_mfsbo2($this) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $this(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function XmlConfig$_init_$lambda_mfsbo2_0($unknownChildHandler) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $unknownChildHandler(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function XmlConfig(repairNamespaces, xmlDeclMode, indentString, policy, nilAttribute, xmlVersion) {
    Companion_getInstance_7();
    repairNamespaces = repairNamespaces === VOID ? true : repairNamespaces;
    xmlDeclMode = xmlDeclMode === VOID ? XmlDeclMode_None_getInstance() : xmlDeclMode;
    indentString = indentString === VOID ? '' : indentString;
    nilAttribute = nilAttribute === VOID ? null : nilAttribute;
    xmlVersion = xmlVersion === VOID ? XmlVersion_XML11_getInstance() : xmlVersion;
    this.repairNamespaces_1 = repairNamespaces;
    this.xmlDeclMode_1 = xmlDeclMode;
    this.indentString_1 = indentString;
    this.policy_1 = policy;
    this.nilAttribute_1 = nilAttribute;
    this.xmlVersion_1 = xmlVersion;
    this.isInlineCollapsed_1 = true;
    this.isCollectingNSAttributes_1 = false;
  }
  protoOf(XmlConfig).get_repairNamespaces_s0niy6_k$ = function () {
    return this.repairNamespaces_1;
  };
  protoOf(XmlConfig).get_xmlDeclMode_lc8ced_k$ = function () {
    return this.xmlDeclMode_1;
  };
  protoOf(XmlConfig).get_indentString_li4jl2_k$ = function () {
    return this.indentString_1;
  };
  protoOf(XmlConfig).get_policy_i5q4hn_k$ = function () {
    return this.policy_1;
  };
  protoOf(XmlConfig).get_nilAttribute_2aq3ho_k$ = function () {
    return this.nilAttribute_1;
  };
  protoOf(XmlConfig).get_xmlVersion_oyodyu_k$ = function () {
    return this.xmlVersion_1;
  };
  protoOf(XmlConfig).get_isInlineCollapsed_js96yd_k$ = function () {
    return this.isInlineCollapsed_1;
  };
  protoOf(XmlConfig).set_isCollectingNSAttributes_aagb0a_k$ = function (_set____db54di) {
    this.isCollectingNSAttributes_1 = _set____db54di;
  };
  protoOf(XmlConfig).get_isCollectingNSAttributes_hmccuf_k$ = function () {
    return this.isCollectingNSAttributes_1;
  };
  protoOf(XmlConfig).get_indent_etpsj9_k$ = function () {
    return countIndentedLength(this.indentString_1);
  };
  protoOf(XmlConfig).get_omitXmlDecl_tgk0y9_k$ = function () {
    return this.xmlDeclMode_1.equals(XmlDeclMode_None_getInstance());
  };
  function UnknownChildHandler() {
  }
  function asRecoverable(_this__u8e3s4) {
    var tmp = asRecoverable$lambda(_this__u8e3s4);
    return new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_7(tmp);
  }
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_7(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_7).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function asRecoverable$lambda($this_asRecoverable) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $this_asRecoverable(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function UnknownXmlFieldException(locationInfo, xmlName, candidates) {
    candidates = candidates === VOID ? emptyList() : candidates;
    var tmp = candidateString(candidates);
    var tmp_0;
    if (locationInfo == null) {
      tmp_0 = null;
    } else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.UnknownXmlFieldException.<init>.<anonymous>' call
      tmp_0 = ' at position ' + locationInfo;
    }
    var tmp1_elvis_lhs = tmp_0;
    XmlSerialException.call(this, 'Could not find a field for name ' + xmlName + tmp + (tmp1_elvis_lhs == null ? '' : tmp1_elvis_lhs));
    captureStack(this, UnknownXmlFieldException);
  }
  function XmlSerialException(message, cause) {
    cause = cause === VOID ? null : cause;
    SerializationException_init_$Init$(message, cause, this);
    captureStack(this, XmlSerialException);
  }
  function XmlParsingException(locationInfo, message, cause) {
    cause = cause === VOID ? null : cause;
    XmlSerialException.call(this, 'Invalid XML value at position: ' + locationInfo + ': ' + message, cause);
    captureStack(this, XmlParsingException);
  }
  function candidateString(candidates) {
    var tmp;
    if (candidates.iterator_jk1svi_k$().hasNext_bitz1p_k$() === true) {
      tmp = joinToString(candidates, VOID, '\n  candidates: ', VOID, VOID, VOID, candidateString$lambda);
    } else {
      tmp = '';
    }
    return tmp;
  }
  function candidateString$lambda(it) {
    var tmp;
    if (it instanceof PolyInfo) {
      tmp = '' + it.get_tagName_ocsgis_k$() + ' (' + it.get_descriptor_wjt6a0_k$().get_outputKind_tsa18e_k$() + ')';
    } else {
      tmp = toString(it);
    }
    return tmp;
  }
  function DeclaredNameInfo_init_$Init$(serialName, $this) {
    DeclaredNameInfo.call($this, serialName, null, false);
    return $this;
  }
  function DeclaredNameInfo_init_$Create$(serialName) {
    return DeclaredNameInfo_init_$Init$(serialName, objectCreate(protoOf(DeclaredNameInfo)));
  }
  var XmlEncodeDefault_ALWAYS_instance;
  var XmlEncodeDefault_ANNOTATED_instance;
  var XmlEncodeDefault_NEVER_instance;
  function values_1() {
    return [XmlEncodeDefault_ALWAYS_getInstance(), XmlEncodeDefault_ANNOTATED_getInstance(), XmlEncodeDefault_NEVER_getInstance()];
  }
  function valueOf_1(value) {
    switch (value) {
      case 'ALWAYS':
        return XmlEncodeDefault_ALWAYS_getInstance();
      case 'ANNOTATED':
        return XmlEncodeDefault_ANNOTATED_getInstance();
      case 'NEVER':
        return XmlEncodeDefault_NEVER_getInstance();
      default:
        XmlEncodeDefault_initEntries();
        THROW_IAE('No enum constant value.');
        break;
    }
  }
  function get_entries_1() {
    if ($ENTRIES_1 == null)
      $ENTRIES_1 = enumEntries(values_1());
    return $ENTRIES_1;
  }
  var XmlEncodeDefault_entriesInitialized;
  function XmlEncodeDefault_initEntries() {
    if (XmlEncodeDefault_entriesInitialized)
      return Unit_getInstance();
    XmlEncodeDefault_entriesInitialized = true;
    XmlEncodeDefault_ALWAYS_instance = new XmlEncodeDefault('ALWAYS', 0);
    XmlEncodeDefault_ANNOTATED_instance = new XmlEncodeDefault('ANNOTATED', 1);
    XmlEncodeDefault_NEVER_instance = new XmlEncodeDefault('NEVER', 2);
  }
  var $ENTRIES_1;
  function DeclaredNameInfo(serialName, annotatedName, isDefaultNamespace) {
    this.serialName_1 = serialName;
    this.annotatedName_1 = annotatedName;
    this.isDefaultNamespace_1 = isDefaultNamespace;
    // Inline function 'kotlin.check' call
    // Inline function 'kotlin.contracts.contract' call
    if (!!(this.isDefaultNamespace_1 ? this.annotatedName_1 == null : false)) {
      // Inline function 'nl.adaptivity.xmlutil.serialization.DeclaredNameInfo.<anonymous>' call
      var message = 'Default namespace requires there to be an annotated name';
      throw IllegalStateException_init_$Create$(toString(message));
    }
  }
  protoOf(DeclaredNameInfo).get_serialName_u2rqhk_k$ = function () {
    return this.serialName_1;
  };
  protoOf(DeclaredNameInfo).get_annotatedName_g9piau_k$ = function () {
    return this.annotatedName_1;
  };
  protoOf(DeclaredNameInfo).get_isDefaultNamespace_hp4hlf_k$ = function () {
    return this.isDefaultNamespace_1;
  };
  protoOf(DeclaredNameInfo).component1_7eebsc_k$ = function () {
    return this.serialName_1;
  };
  protoOf(DeclaredNameInfo).component2_7eebsb_k$ = function () {
    return this.annotatedName_1;
  };
  protoOf(DeclaredNameInfo).component3_7eebsa_k$ = function () {
    return this.isDefaultNamespace_1;
  };
  protoOf(DeclaredNameInfo).copy_v4azys_k$ = function (serialName, annotatedName, isDefaultNamespace) {
    return new DeclaredNameInfo(serialName, annotatedName, isDefaultNamespace);
  };
  protoOf(DeclaredNameInfo).copy$default_apjb99_k$ = function (serialName, annotatedName, isDefaultNamespace, $super) {
    serialName = serialName === VOID ? this.serialName_1 : serialName;
    annotatedName = annotatedName === VOID ? this.annotatedName_1 : annotatedName;
    isDefaultNamespace = isDefaultNamespace === VOID ? this.isDefaultNamespace_1 : isDefaultNamespace;
    return $super === VOID ? this.copy_v4azys_k$(serialName, annotatedName, isDefaultNamespace) : $super.copy_v4azys_k$.call(this, serialName, annotatedName, isDefaultNamespace);
  };
  protoOf(DeclaredNameInfo).toString = function () {
    return 'DeclaredNameInfo(serialName=' + this.serialName_1 + ', annotatedName=' + this.annotatedName_1 + ', isDefaultNamespace=' + this.isDefaultNamespace_1 + ')';
  };
  protoOf(DeclaredNameInfo).hashCode = function () {
    var result = getStringHashCode(this.serialName_1);
    result = imul(result, 31) + (this.annotatedName_1 == null ? 0 : this.annotatedName_1.hashCode()) | 0;
    result = imul(result, 31) + getBooleanHashCode(this.isDefaultNamespace_1) | 0;
    return result;
  };
  protoOf(DeclaredNameInfo).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof DeclaredNameInfo))
      return false;
    var tmp0_other_with_cast = other instanceof DeclaredNameInfo ? other : THROW_CCE();
    if (!(this.serialName_1 === tmp0_other_with_cast.serialName_1))
      return false;
    if (!equals(this.annotatedName_1, tmp0_other_with_cast.annotatedName_1))
      return false;
    if (!(this.isDefaultNamespace_1 === tmp0_other_with_cast.isDefaultNamespace_1))
      return false;
    return true;
  };
  function ActualNameInfo(serialName, annotatedName) {
    this.serialName_1 = serialName;
    this.annotatedName_1 = annotatedName;
  }
  protoOf(ActualNameInfo).get_serialName_u2rqhk_k$ = function () {
    return this.serialName_1;
  };
  protoOf(ActualNameInfo).get_annotatedName_g9piau_k$ = function () {
    return this.annotatedName_1;
  };
  protoOf(ActualNameInfo).component1_7eebsc_k$ = function () {
    return this.serialName_1;
  };
  protoOf(ActualNameInfo).component2_7eebsb_k$ = function () {
    return this.annotatedName_1;
  };
  protoOf(ActualNameInfo).copy_reb6ne_k$ = function (serialName, annotatedName) {
    return new ActualNameInfo(serialName, annotatedName);
  };
  protoOf(ActualNameInfo).copy$default_ffu48m_k$ = function (serialName, annotatedName, $super) {
    serialName = serialName === VOID ? this.serialName_1 : serialName;
    annotatedName = annotatedName === VOID ? this.annotatedName_1 : annotatedName;
    return $super === VOID ? this.copy_reb6ne_k$(serialName, annotatedName) : $super.copy_reb6ne_k$.call(this, serialName, annotatedName);
  };
  protoOf(ActualNameInfo).toString = function () {
    return 'ActualNameInfo(serialName=' + this.serialName_1 + ', annotatedName=' + this.annotatedName_1 + ')';
  };
  protoOf(ActualNameInfo).hashCode = function () {
    var result = getStringHashCode(this.serialName_1);
    result = imul(result, 31) + this.annotatedName_1.hashCode() | 0;
    return result;
  };
  protoOf(ActualNameInfo).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ActualNameInfo))
      return false;
    var tmp0_other_with_cast = other instanceof ActualNameInfo ? other : THROW_CCE();
    if (!(this.serialName_1 === tmp0_other_with_cast.serialName_1))
      return false;
    if (!this.annotatedName_1.equals(tmp0_other_with_cast.annotatedName_1))
      return false;
    return true;
  };
  function XmlEncodeDefault(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  function Companion_2() {
    Companion_instance_2 = this;
  }
  protoOf(Companion_2).recoverNullNamespaceUse_7y7siz_k$ = function (inputKind, descriptor, name) {
    if (!(name == null)) {
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      if (name.getNamespaceURI_665tvr_k$() === '') {
        var inductionVariable = 0;
        var last = descriptor.get_elementsCount_288r0x_k$();
        if (inductionVariable < last)
          do {
            var idx = inductionVariable;
            inductionVariable = inductionVariable + 1 | 0;
            var candidate = descriptor.getElementDescriptor_ncda77_k$(idx);
            var tmp;
            if (inputKind.mapsTo_78gkyu_k$(candidate.get_effectiveOutputKind_uvd9nx_k$())) {
              // Inline function 'nl.adaptivity.xmlutil.localPart' call
              tmp = candidate.get_tagName_ocsgis_k$().getLocalPart_k3cdyw_k$() === name.getLocalPart_k3cdyw_k$();
            } else {
              tmp = false;
            }
            if (tmp) {
              return listOf(new ParsedData(idx, Unit_getInstance(), true));
            }
          }
           while (inductionVariable < last);
      } else {
        var inductionVariable_0 = 0;
        var last_0 = descriptor.get_elementsCount_288r0x_k$();
        if (inductionVariable_0 < last_0)
          do {
            var idx_0 = inductionVariable_0;
            inductionVariable_0 = inductionVariable_0 + 1 | 0;
            var candidate_0 = descriptor.getElementDescriptor_ncda77_k$(idx_0);
            var tmp_0;
            if (inputKind.mapsTo_78gkyu_k$(candidate_0.get_effectiveOutputKind_uvd9nx_k$())) {
              var tmp_1 = candidate_0.get_tagName_ocsgis_k$();
              // Inline function 'nl.adaptivity.xmlutil.localPart' call
              var tmp$ret$2 = name.getLocalPart_k3cdyw_k$();
              tmp_0 = isEquivalent(tmp_1, QName_init_$Create$(tmp$ret$2));
            } else {
              tmp_0 = false;
            }
            if (tmp_0) {
              return listOf(new ParsedData(idx_0, Unit_getInstance(), true));
            }
          }
           while (inductionVariable_0 < last_0);
      }
    }
    return null;
  };
  var Companion_instance_2;
  function Companion_getInstance_8() {
    if (Companion_instance_2 == null)
      new Companion_2();
    return Companion_instance_2;
  }
  function XmlEncodeDefault_ALWAYS_getInstance() {
    XmlEncodeDefault_initEntries();
    return XmlEncodeDefault_ALWAYS_instance;
  }
  function XmlEncodeDefault_ANNOTATED_getInstance() {
    XmlEncodeDefault_initEntries();
    return XmlEncodeDefault_ANNOTATED_instance;
  }
  function XmlEncodeDefault_NEVER_getInstance() {
    XmlEncodeDefault_initEntries();
    return XmlEncodeDefault_NEVER_instance;
  }
  function XmlSerializationPolicy() {
  }
  function Builder_init_$Init$_5(policy, $this) {
    Builder_0.call($this, policy.pedantic_1, policy.autoPolymorphic_1, policy.encodeDefault_1, policy.unknownChildHandler_1, policy.typeDiscriminatorName_1, policy.throwOnRepeatedElement_1, policy.get_verifyElementOrder_ilkdrg_k$(), policy.get_isStrictNames_80ezws_k$());
    return $this;
  }
  function Builder_init_$Create$_5(policy) {
    return Builder_init_$Init$_5(policy, objectCreate(protoOf(Builder_0)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder, $this) {
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? XmlEncodeDefault_ANNOTATED_getInstance() : encodeDefault;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$() : unknownChildHandler;
    typeDiscriminatorName = typeDiscriminatorName === VOID ? null : typeDiscriminatorName;
    throwOnRepeatedElement = throwOnRepeatedElement === VOID ? false : throwOnRepeatedElement;
    verifyElementOrder = verifyElementOrder === VOID ? false : verifyElementOrder;
    DefaultXmlSerializationPolicy.call($this, pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder, false);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder) {
    return DefaultXmlSerializationPolicy_init_$Init$(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$_0(pedantic, typeDiscriminatorName, encodeDefault, unknownChildHandler, throwOnRepeatedElement, verifyElementOrder, $this) {
    encodeDefault = encodeDefault === VOID ? XmlEncodeDefault_ANNOTATED_getInstance() : encodeDefault;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$() : unknownChildHandler;
    throwOnRepeatedElement = throwOnRepeatedElement === VOID ? false : throwOnRepeatedElement;
    verifyElementOrder = verifyElementOrder === VOID ? false : verifyElementOrder;
    DefaultXmlSerializationPolicy_init_$Init$(pedantic, false, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder, $this);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$_0(pedantic, typeDiscriminatorName, encodeDefault, unknownChildHandler, throwOnRepeatedElement, verifyElementOrder) {
    return DefaultXmlSerializationPolicy_init_$Init$_0(pedantic, typeDiscriminatorName, encodeDefault, unknownChildHandler, throwOnRepeatedElement, verifyElementOrder, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$_1(pedantic, autoPolymorphic, encodeDefault, $this) {
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? XmlEncodeDefault_ANNOTATED_getInstance() : encodeDefault;
    DefaultXmlSerializationPolicy_init_$Init$(pedantic, autoPolymorphic, encodeDefault, Companion_getInstance_7().get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$(), VOID, VOID, VOID, $this);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$_1(pedantic, autoPolymorphic, encodeDefault) {
    return DefaultXmlSerializationPolicy_init_$Init$_1(pedantic, autoPolymorphic, encodeDefault, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$_2(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, $this) {
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? XmlEncodeDefault_ANNOTATED_getInstance() : encodeDefault;
    var tmp = DefaultXmlSerializationPolicy$_init_$lambda_fgkam9(unknownChildHandler);
    DefaultXmlSerializationPolicy_init_$Init$(pedantic, autoPolymorphic, encodeDefault, new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_8(tmp), VOID, VOID, VOID, $this);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$_2(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler) {
    return DefaultXmlSerializationPolicy_init_$Init$_2(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$_3(pedantic, autoPolymorphic, unknownChildHandler, $this) {
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    DefaultXmlSerializationPolicy_init_$Init$_2(pedantic, autoPolymorphic, XmlEncodeDefault_ANNOTATED_getInstance(), unknownChildHandler, $this);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$_3(pedantic, autoPolymorphic, unknownChildHandler) {
    return DefaultXmlSerializationPolicy_init_$Init$_3(pedantic, autoPolymorphic, unknownChildHandler, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$_4(original, $this) {
    var tmp0_safe_receiver = original instanceof DefaultXmlSerializationPolicy ? original : null;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.pedantic_1;
    var tmp = tmp1_elvis_lhs == null ? false : tmp1_elvis_lhs;
    var tmp2_safe_receiver = original instanceof DefaultXmlSerializationPolicy ? original : null;
    var tmp3_elvis_lhs = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.autoPolymorphic_1;
    var tmp_0 = tmp3_elvis_lhs == null ? false : tmp3_elvis_lhs;
    var tmp4_safe_receiver = original instanceof DefaultXmlSerializationPolicy ? original : null;
    var tmp5_elvis_lhs = tmp4_safe_receiver == null ? null : tmp4_safe_receiver.encodeDefault_1;
    var tmp_1 = tmp5_elvis_lhs == null ? XmlEncodeDefault_ANNOTATED_getInstance() : tmp5_elvis_lhs;
    var tmp_2;
    if (original == null) {
      tmp_2 = null;
    } else {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.<init>.<anonymous>' call
      var tmp0_safe_receiver_0 = original instanceof DefaultXmlSerializationPolicy ? original : null;
      var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : tmp0_safe_receiver_0.unknownChildHandler_1;
      var tmp_3;
      if (tmp1_elvis_lhs_0 == null) {
        var tmp_4 = DefaultXmlSerializationPolicy$_init_$lambda_fgkam9_0(original);
        tmp_3 = new sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_9(tmp_4);
      } else {
        tmp_3 = tmp1_elvis_lhs_0;
      }
      tmp_2 = tmp_3;
    }
    var tmp7_elvis_lhs = tmp_2;
    var tmp_5 = tmp7_elvis_lhs == null ? Companion_getInstance_7().get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$() : tmp7_elvis_lhs;
    var tmp8_safe_receiver = original instanceof DefaultXmlSerializationPolicy ? original : null;
    var tmp_6 = tmp8_safe_receiver == null ? null : tmp8_safe_receiver.typeDiscriminatorName_1;
    var tmp9_safe_receiver = original instanceof DefaultXmlSerializationPolicy ? original : null;
    var tmp10_elvis_lhs = tmp9_safe_receiver == null ? null : tmp9_safe_receiver.throwOnRepeatedElement_1;
    var tmp_7 = tmp10_elvis_lhs == null ? false : tmp10_elvis_lhs;
    var tmp12_elvis_lhs = original == null ? null : original.get_verifyElementOrder_ilkdrg_k$();
    var tmp_8 = tmp12_elvis_lhs == null ? false : tmp12_elvis_lhs;
    var tmp14_elvis_lhs = original == null ? null : original.get_isStrictNames_80ezws_k$();
    DefaultXmlSerializationPolicy.call($this, tmp, tmp_0, tmp_1, tmp_5, tmp_6, tmp_7, tmp_8, tmp14_elvis_lhs == null ? false : tmp14_elvis_lhs);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$_4(original) {
    return DefaultXmlSerializationPolicy_init_$Init$_4(original, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function DefaultXmlSerializationPolicy_init_$Init$_5(builder, $this) {
    DefaultXmlSerializationPolicy.call($this, builder.pedantic_1, builder.autoPolymorphic_1, builder.encodeDefault_1, builder.unknownChildHandler_1, builder.typeDiscriminatorName_1, builder.throwOnRepeatedElement_1, builder.verifyElementOrder_1, builder.isStrictAttributeNames_1);
    return $this;
  }
  function DefaultXmlSerializationPolicy_init_$Create$_5(builder) {
    return DefaultXmlSerializationPolicy_init_$Init$_5(builder, objectCreate(protoOf(DefaultXmlSerializationPolicy)));
  }
  function Builder_0(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder, isStrictAttributeNames) {
    pedantic = pedantic === VOID ? false : pedantic;
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? XmlEncodeDefault_ANNOTATED_getInstance() : encodeDefault;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$() : unknownChildHandler;
    typeDiscriminatorName = typeDiscriminatorName === VOID ? null : typeDiscriminatorName;
    throwOnRepeatedElement = throwOnRepeatedElement === VOID ? false : throwOnRepeatedElement;
    verifyElementOrder = verifyElementOrder === VOID ? false : verifyElementOrder;
    isStrictAttributeNames = isStrictAttributeNames === VOID ? false : isStrictAttributeNames;
    this.pedantic_1 = pedantic;
    this.autoPolymorphic_1 = autoPolymorphic;
    this.encodeDefault_1 = encodeDefault;
    this.unknownChildHandler_1 = unknownChildHandler;
    this.typeDiscriminatorName_1 = typeDiscriminatorName;
    this.throwOnRepeatedElement_1 = throwOnRepeatedElement;
    this.verifyElementOrder_1 = verifyElementOrder;
    this.isStrictAttributeNames_1 = isStrictAttributeNames;
  }
  protoOf(Builder_0).set_pedantic_t4kvtm_k$ = function (_set____db54di) {
    this.pedantic_1 = _set____db54di;
  };
  protoOf(Builder_0).get_pedantic_vdmpid_k$ = function () {
    return this.pedantic_1;
  };
  protoOf(Builder_0).set_autoPolymorphic_gatmq3_k$ = function (_set____db54di) {
    this.autoPolymorphic_1 = _set____db54di;
  };
  protoOf(Builder_0).get_autoPolymorphic_pwin2a_k$ = function () {
    return this.autoPolymorphic_1;
  };
  protoOf(Builder_0).set_encodeDefault_pidnoq_k$ = function (_set____db54di) {
    this.encodeDefault_1 = _set____db54di;
  };
  protoOf(Builder_0).get_encodeDefault_wsnk66_k$ = function () {
    return this.encodeDefault_1;
  };
  protoOf(Builder_0).set_unknownChildHandler_9nkkz_k$ = function (_set____db54di) {
    this.unknownChildHandler_1 = _set____db54di;
  };
  protoOf(Builder_0).get_unknownChildHandler_zbenox_k$ = function () {
    return this.unknownChildHandler_1;
  };
  protoOf(Builder_0).set_typeDiscriminatorName_3n1ea4_k$ = function (_set____db54di) {
    this.typeDiscriminatorName_1 = _set____db54di;
  };
  protoOf(Builder_0).get_typeDiscriminatorName_ksdz44_k$ = function () {
    return this.typeDiscriminatorName_1;
  };
  protoOf(Builder_0).set_throwOnRepeatedElement_z8qqt_k$ = function (_set____db54di) {
    this.throwOnRepeatedElement_1 = _set____db54di;
  };
  protoOf(Builder_0).get_throwOnRepeatedElement_nh4p2y_k$ = function () {
    return this.throwOnRepeatedElement_1;
  };
  protoOf(Builder_0).set_verifyElementOrder_ahos99_k$ = function (_set____db54di) {
    this.verifyElementOrder_1 = _set____db54di;
  };
  protoOf(Builder_0).get_verifyElementOrder_ilkdrg_k$ = function () {
    return this.verifyElementOrder_1;
  };
  protoOf(Builder_0).set_isStrictAttributeNames_euveqh_k$ = function (_set____db54di) {
    this.isStrictAttributeNames_1 = _set____db54di;
  };
  protoOf(Builder_0).get_isStrictAttributeNames_qzsho8_k$ = function () {
    return this.isStrictAttributeNames_1;
  };
  protoOf(Builder_0).ignoreUnknownChildren_hc7eqv_k$ = function () {
    this.unknownChildHandler_1 = Companion_getInstance_7().get_IGNORING_UNKNOWN_CHILD_HANDLER_xclsh7_k$();
  };
  protoOf(Builder_0).ignoreNamespaces_c9al22_k$ = function () {
    this.unknownChildHandler_1 = Companion_getInstance_7().get_IGNORING_UNKNOWN_NAMESPACE_HANDLER_nmhefq_k$();
  };
  protoOf(Builder_0).build_1k0s4u_k$ = function () {
    return DefaultXmlSerializationPolicy_init_$Create$_5(this);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_8(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_8).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_9(function_0) {
    this.function_1 = function_0;
  }
  protoOf(sam$nl_adaptivity_xmlutil_serialization_UnknownChildHandler$0_9).handleUnknownChildRecovering_psgf3t_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.function_1(input, inputKind, descriptor, name, candidates);
  };
  function initialChildReorderMap$toChildIndex(_this__u8e3s4, nameToIdx, $parentDescriptor) {
    var tmp;
    if (_this__u8e3s4 === '*') {
      tmp = Companion_getInstance_11().get_OTHERS_23qess_k$();
    } else {
      var tmp1_elvis_lhs = nameToIdx.get_wei43m_k$(_this__u8e3s4);
      var tmp_0;
      if (tmp1_elvis_lhs == null) {
        throw new XmlSerialException('Could not find the attribute in ' + $parentDescriptor.get_serialName_u2rqhk_k$() + ' with the name: ' + _this__u8e3s4 + '\n  Candidates were: ' + joinToString(nameToIdx.get_keys_wop4xp_k$()));
      } else {
        tmp_0 = tmp1_elvis_lhs;
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  function updateReorderMap$isAttribute(_this__u8e3s4, $children) {
    return $children.get_c1px32_k$(_this__u8e3s4).get_outputKind_tsa18e_k$().equals(OutputKind_Attribute_getInstance());
  }
  function DefaultXmlSerializationPolicy$_init_$lambda_fgkam9($unknownChildHandler) {
    return function (input, inputKind, _anonymous_parameter_2__qggqfi, name, candidates) {
      $unknownChildHandler(input, inputKind, name, candidates);
      return emptyList();
    };
  }
  function DefaultXmlSerializationPolicy$_init_$lambda_fgkam9_0($orig) {
    return function (input, inputKind, descriptor, name, candidates) {
      return $orig.handleUnknownContentRecovering_6yvbuy_k$(input, inputKind, descriptor, name, candidates);
    };
  }
  function DefaultXmlSerializationPolicy$effectiveName$lambda() {
    return 'Type name info should match';
  }
  function DefaultXmlSerializationPolicy$elementNamespaceDecls$lambda(it) {
    return it instanceof XmlNamespaceDeclSpec;
  }
  function DefaultXmlSerializationPolicy$elementNamespaceDecls$lambda_0(decl) {
    return get_namespaces(decl);
  }
  function DefaultXmlSerializationPolicy(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, throwOnRepeatedElement, verifyElementOrder, isStrictNames) {
    autoPolymorphic = autoPolymorphic === VOID ? false : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? XmlEncodeDefault_ANNOTATED_getInstance() : encodeDefault;
    unknownChildHandler = unknownChildHandler === VOID ? Companion_getInstance_7().get_DEFAULT_UNKNOWN_CHILD_HANDLER_v8m14l_k$() : unknownChildHandler;
    typeDiscriminatorName = typeDiscriminatorName === VOID ? null : typeDiscriminatorName;
    throwOnRepeatedElement = throwOnRepeatedElement === VOID ? false : throwOnRepeatedElement;
    verifyElementOrder = verifyElementOrder === VOID ? false : verifyElementOrder;
    this.pedantic_1 = pedantic;
    this.autoPolymorphic_1 = autoPolymorphic;
    this.encodeDefault_1 = encodeDefault;
    this.unknownChildHandler_1 = unknownChildHandler;
    this.typeDiscriminatorName_1 = typeDiscriminatorName;
    this.throwOnRepeatedElement_1 = throwOnRepeatedElement;
    this.verifyElementOrder_1 = verifyElementOrder;
    this.isStrictNames_1 = isStrictNames;
  }
  protoOf(DefaultXmlSerializationPolicy).get_pedantic_vdmpid_k$ = function () {
    return this.pedantic_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_autoPolymorphic_pwin2a_k$ = function () {
    return this.autoPolymorphic_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_encodeDefault_wsnk66_k$ = function () {
    return this.encodeDefault_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_unknownChildHandler_zbenox_k$ = function () {
    return this.unknownChildHandler_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_typeDiscriminatorName_ksdz44_k$ = function () {
    return this.typeDiscriminatorName_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_throwOnRepeatedElement_nh4p2y_k$ = function () {
    return this.throwOnRepeatedElement_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_verifyElementOrder_ilkdrg_k$ = function () {
    return this.verifyElementOrder_1;
  };
  protoOf(DefaultXmlSerializationPolicy).get_isStrictNames_80ezws_k$ = function () {
    return this.isStrictNames_1;
  };
  protoOf(DefaultXmlSerializationPolicy).polymorphicDiscriminatorName_x4ry6p_k$ = function (serializerParent, tagParent) {
    return this.typeDiscriminatorName_1;
  };
  protoOf(DefaultXmlSerializationPolicy).isListEluded_iwbfwl_k$ = function (serializerParent, tagParent) {
    var useAnnotations = tagParent.get_elementUseAnnotations_y3m8sw_k$();
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = useAnnotations.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlValue) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var tmp0_safe_receiver = tmp$ret$0;
    var isMixed = (tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_value_j01efc_k$()) === true;
    if (isMixed)
      return true;
    var tmp$ret$1;
    $l$block_0: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator_0 = useAnnotations.iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var e_0 = tmp0_iterator_0.next_20eer_k$();
        if (e_0 instanceof XmlChildrenName) {
          tmp$ret$1 = e_0;
          break $l$block_0;
        }
      }
      tmp$ret$1 = null;
    }
    var tmp1_safe_receiver = tmp$ret$1;
    var reqChildrenName = tmp1_safe_receiver == null ? null : toQName_0(tmp1_safe_receiver);
    return reqChildrenName == null;
  };
  protoOf(DefaultXmlSerializationPolicy).isTransparentPolymorphic_44l9f8_k$ = function (serializerParent, tagParent) {
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlPolyChildren) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var xmlPolyChildren = tmp$ret$0;
    return this.autoPolymorphic_1 ? true : !(xmlPolyChildren == null);
  };
  protoOf(DefaultXmlSerializationPolicy).effectiveOutputKind_22mmoq_k$ = function (serializerParent, tagParent) {
    return this.effectiveOutputKind_5fu2kr_k$(serializerParent, tagParent, true);
  };
  protoOf(DefaultXmlSerializationPolicy).effectiveOutputKind_5fu2kr_k$ = function (serializerParent, tagParent, canBeAttribute) {
    var tmp0_safe_receiver = this.overrideSerializerOrNull_kprih2_k$(serializerParent, tagParent);
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_descriptor_wjt6a0_k$();
    var serialDescriptor = tmp1_elvis_lhs == null ? serializerParent.get_elementSerialDescriptor_gvznu_k$() : tmp1_elvis_lhs;
    var overrideOutputKind = serializerParent.get_elementUseOutputKind_aak75j_k$();
    var tmp;
    switch (overrideOutputKind == null ? -1 : overrideOutputKind.get_ordinal_ip24qg_k$()) {
      case -1:
        var useAnnotations = tagParent.get_elementUseAnnotations_y3m8sw_k$();
        var tmp$ret$0;
        $l$block: {
          // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
          var tmp0_iterator = useAnnotations.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var e = tmp0_iterator.next_20eer_k$();
            if (e instanceof XmlValue) {
              tmp$ret$0 = e;
              break $l$block;
            }
          }
          tmp$ret$0 = null;
        }

        var tmp2_safe_receiver = tmp$ret$0;
        var isValue = (tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_value_j01efc_k$()) === true;
        var parentChildDesc = tagParent.get_elementSerialDescriptor_gvznu_k$();
        while (parentChildDesc.get_isInline_usk17w_k$()) {
          parentChildDesc = parentChildDesc.getElementDescriptor_ncda77_k$(0);
        }

        var elementKind = parentChildDesc.get_kind_wop7ml_k$();
        var tmp_0;
        if (equals(elementKind, CLASS_getInstance())) {
          tmp_0 = OutputKind_Element_getInstance();
        } else if (isValue) {
          tmp_0 = OutputKind_Mixed_getInstance();
        } else if (!canBeAttribute ? equals(tagParent.get_elementUseOutputKind_aak75j_k$(), OutputKind_Attribute_getInstance()) : false) {
          tmp_0 = this.handleAttributeOrderConflict_l5t2w2_k$(serializerParent, tagParent, OutputKind_Attribute_getInstance());
        } else if (!canBeAttribute) {
          tmp_0 = OutputKind_Element_getInstance();
        } else {
          var tmp3_elvis_lhs = tagParent.get_elementUseOutputKind_aak75j_k$();
          var tmp4_elvis_lhs = tmp3_elvis_lhs == null ? declOutputKind(serialDescriptor) : tmp3_elvis_lhs;
          tmp_0 = tmp4_elvis_lhs == null ? this.defaultOutputKind_cvtlao_k$(serialDescriptor.get_kind_wop7ml_k$()) : tmp4_elvis_lhs;
        }

        tmp = tmp_0;
        break;
      case 3:
        var tmp_1;
        var tmp_2 = serializerParent.get_descriptor_wjt6a0_k$();
        if (tmp_2 instanceof XmlListDescriptor) {
          var tmp_3;
          if (equals(tagParent.get_elementSerialDescriptor_gvznu_k$().get_kind_wop7ml_k$(), CLASS_getInstance())) {
            tmp_3 = OutputKind_Element_getInstance();
          } else {
            tmp_3 = OutputKind_Mixed_getInstance();
          }
          tmp_1 = tmp_3;
        } else {
          var tmp5_elvis_lhs = tagParent.get_elementUseOutputKind_aak75j_k$();
          var tmp6_elvis_lhs = tmp5_elvis_lhs == null ? declOutputKind(serialDescriptor) : tmp5_elvis_lhs;
          var outputKind = tmp6_elvis_lhs == null ? this.defaultOutputKind_cvtlao_k$(serialDescriptor.get_kind_wop7ml_k$()) : tmp6_elvis_lhs;
          tmp_1 = outputKind.get_ordinal_ip24qg_k$() === 1 ? OutputKind_Text_getInstance() : outputKind;
        }

        tmp = tmp_1;
        break;
      default:
        tmp = overrideOutputKind;
        break;
    }
    return tmp;
  };
  protoOf(DefaultXmlSerializationPolicy).serialNameToQName_rvd6v8_k$ = function (serialName, parentNamespace) {
    switch (serialName) {
      case 'kotlin.Boolean':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'boolean', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.Byte':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'byte', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.UByte':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'unsignedByte', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.Short':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'short', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.UShort':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'unsignedShort', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.Int':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'int', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.UInt':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'unsignedInt', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.Long':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'long', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.ULong':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'unsignedLong', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.Float':
      case 'kotlin.Double':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'double', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      case 'kotlin.String':
        return new QName(XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), 'string', XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$());
      default:
        return toQname(substringAfterLast(serialName, _Char___init__impl__6a9atx(46)), parentNamespace);
    }
  };
  protoOf(DefaultXmlSerializationPolicy).effectiveName_j2bo7w_k$ = function (serializerParent, tagParent, outputKind, useName) {
    var typeDescriptor = serializerParent.get_elementTypeDescriptor_rhs6d8_k$();
    var serialKind = typeDescriptor.get_serialDescriptor_vvwkac_k$().get_kind_wop7ml_k$();
    var typeNameInfo = typeDescriptor.get_typeNameInfo_ievmo4_k$();
    var parentNamespace = tagParent.get_namespace_t826ya_k$();
    var tmp = typeNameInfo.equals(typeDescriptor.get_typeNameInfo_ievmo4_k$());
    assert_0(tmp, DefaultXmlSerializationPolicy$effectiveName$lambda);
    var tmp0_safe_receiver = tagParent.get_descriptor_wjt6a0_k$();
    var parentSerialKind = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_serialKind_u2thhr_k$();
    var tmp_0;
    if (outputKind.equals(OutputKind_Attribute_getInstance())) {
      var tmp_1;
      if (useName.isDefaultNamespace_1) {
        var tmp1_safe_receiver = useName.annotatedName_1;
        var tmp2_elvis_lhs = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.getLocalPart_k3cdyw_k$();
        tmp_1 = QName_init_$Create$(tmp2_elvis_lhs == null ? useName.serialName_1 : tmp2_elvis_lhs);
      } else if (!(useName.annotatedName_1 == null)) {
        tmp_1 = useName.annotatedName_1;
      } else {
        tmp_1 = QName_init_$Create$(useName.serialName_1);
      }
      tmp_0 = tmp_1;
    } else {
      if (!(useName.annotatedName_1 == null)) {
        tmp_0 = useName.annotatedName_1;
      } else {
        var tmp_2;
        var tmp_3;
        var tmp_4;
        var tmp_5;
        var tmp_6;
        if (serialKind instanceof PrimitiveKind) {
          tmp_6 = true;
        } else {
          tmp_6 = equals(serialKind, MAP_getInstance());
        }
        if (tmp_6) {
          tmp_5 = true;
        } else {
          tmp_5 = equals(serialKind, LIST_getInstance());
        }
        if (tmp_5) {
          tmp_4 = true;
        } else {
          tmp_4 = equals(serialKind, OPEN_getInstance());
        }
        if (tmp_4) {
          tmp_3 = true;
        } else {
          tmp_3 = typeNameInfo.serialName_1 === 'kotlin.Unit';
        }
        if (tmp_3) {
          tmp_2 = true;
        } else {
          tmp_2 = parentSerialKind instanceof PolymorphicKind;
        }
        if (tmp_2) {
          tmp_0 = this.serialUseNameToQName_kw9l0h_k$(useName, parentNamespace);
        } else {
          if (!(typeNameInfo.annotatedName_1 == null)) {
            tmp_0 = typeNameInfo.annotatedName_1;
          } else {
            tmp_0 = this.serialTypeNameToQName_tecixw_k$(typeNameInfo, parentNamespace);
          }
        }
      }
    }
    return tmp_0;
  };
  protoOf(DefaultXmlSerializationPolicy).shouldEncodeElementDefault_88zm81_k$ = function (elementDescriptor) {
    var tmp;
    switch (this.encodeDefault_1.get_ordinal_ip24qg_k$()) {
      case 2:
        tmp = false;
        break;
      case 0:
        tmp = true;
        break;
      case 1:
        var tmp1_safe_receiver = elementDescriptor instanceof XmlValueDescriptor ? elementDescriptor : null;
        tmp = (tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_default_qtagd4_k$()) == null;
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    return tmp;
  };
  protoOf(DefaultXmlSerializationPolicy).handleUnknownContentRecovering_6yvbuy_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.unknownChildHandler_1.handleUnknownChildRecovering_psgf3t_k$(input, inputKind, descriptor, name, candidates);
  };
  protoOf(DefaultXmlSerializationPolicy).handleUnknownContent_qgq844_k$ = function (input, inputKind, name, candidates) {
    throw UnsupportedOperationException_init_$Create$('this function should not be called');
  };
  protoOf(DefaultXmlSerializationPolicy).onElementRepeated_an4ewl_k$ = function (parentDescriptor, childIndex) {
    if (this.throwOnRepeatedElement_1) {
      throw new XmlSerialException('Duplicate child (' + parentDescriptor.getElementDescriptor_ncda77_k$(childIndex) + ' found in ' + parentDescriptor + ' outside of eluded list context');
    }
  };
  protoOf(DefaultXmlSerializationPolicy).overrideSerializerOrNull_kprih2_k$ = function (serializerParent, tagParent) {
    switch (serializerParent.get_elementSerialDescriptor_gvznu_k$().get_serialName_u2rqhk_k$()) {
      case 'javax.xml.namespace.QName?':
      case 'javax.xml.namespace.QName':
        return serializerParent.get_elementSerialDescriptor_gvznu_k$().get_isNullable_67sy7o_k$() ? get_nullable(XmlQNameSerializer_getInstance()) : XmlQNameSerializer_getInstance();
      default:
        return null;
    }
  };
  protoOf(DefaultXmlSerializationPolicy).initialChildReorderMap_qu5t4o_k$ = function (parentDescriptor) {
    // Inline function 'kotlin.collections.associateBy' call
    var this_0 = until(0, parentDescriptor.get_elementsCount_288r0x_k$());
    var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault(this_0, 10)), 16);
    // Inline function 'kotlin.collections.associateByTo' call
    var destination = LinkedHashMap_init_$Create$_0(capacity);
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.initialChildReorderMap.<anonymous>' call
      var tmp$ret$0 = parentDescriptor.getElementName_u4sqmf_k$(element);
      destination.put_4fpzoq_k$(tmp$ret$0, element);
    }
    var nameToIdx = destination;
    var orderConstraints = HashSet_init_$Create$();
    // Inline function 'kotlin.collections.mutableMapOf' call
    var orderNodes = LinkedHashMap_init_$Create$();
    var inductionVariable = 0;
    var last = parentDescriptor.get_elementsCount_288r0x_k$();
    if (inductionVariable < last)
      do {
        var elementIdx = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var xmlBefore = null;
        var xmlAfter = null;
        var tmp1_iterator = parentDescriptor.getElementAnnotations_omrjs6_k$(elementIdx).iterator_jk1svi_k$();
        while (tmp1_iterator.hasNext_bitz1p_k$()) {
          var annotation = tmp1_iterator.next_20eer_k$();
          var tmp;
          if (annotation instanceof XmlBefore) {
            // Inline function 'kotlin.collections.isNotEmpty' call
            // Inline function 'kotlin.collections.isEmpty' call
            tmp = !(annotation.get_value_j01efc_k$().length === 0);
          } else {
            tmp = false;
          }
          if (tmp) {
            // Inline function 'kotlin.collections.mapTo' call
            var indexedObject = annotation.get_value_j01efc_k$();
            var inductionVariable_0 = 0;
            var last_0 = indexedObject.length;
            while (inductionVariable_0 < last_0) {
              var item = indexedObject[inductionVariable_0];
              inductionVariable_0 = inductionVariable_0 + 1 | 0;
              // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.initialChildReorderMap.<anonymous>' call
              var successorIdx = initialChildReorderMap$toChildIndex(item, nameToIdx, parentDescriptor);
              var tmp$ret$6 = new XmlOrderConstraint(elementIdx, successorIdx);
              orderConstraints.add_utx5q5_k$(tmp$ret$6);
            }
            xmlBefore = annotation.get_value_j01efc_k$();
          } else {
            var tmp_0;
            if (annotation instanceof XmlAfter) {
              // Inline function 'kotlin.collections.isNotEmpty' call
              // Inline function 'kotlin.collections.isEmpty' call
              tmp_0 = !(annotation.get_value_j01efc_k$().length === 0);
            } else {
              tmp_0 = false;
            }
            if (tmp_0) {
              // Inline function 'kotlin.collections.mapTo' call
              var indexedObject_0 = annotation.get_value_j01efc_k$();
              var inductionVariable_1 = 0;
              var last_1 = indexedObject_0.length;
              while (inductionVariable_1 < last_1) {
                var item_0 = indexedObject_0[inductionVariable_1];
                inductionVariable_1 = inductionVariable_1 + 1 | 0;
                // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.initialChildReorderMap.<anonymous>' call
                var predecessorIdx = initialChildReorderMap$toChildIndex(item_0, nameToIdx, parentDescriptor);
                var tmp$ret$10 = new XmlOrderConstraint(predecessorIdx, elementIdx);
                orderConstraints.add_utx5q5_k$(tmp$ret$10);
              }
              xmlAfter = annotation.get_value_j01efc_k$();
            }
          }
          if (!(xmlBefore == null) ? true : !(xmlAfter == null)) {
            // Inline function 'kotlin.collections.getOrPut' call
            var key = parentDescriptor.getElementName_u4sqmf_k$(elementIdx);
            var value = orderNodes.get_wei43m_k$(key);
            var tmp_1;
            if (value == null) {
              // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.initialChildReorderMap.<anonymous>' call
              var answer = new XmlOrderNode(elementIdx);
              orderNodes.put_4fpzoq_k$(key, answer);
              tmp_1 = answer;
            } else {
              tmp_1 = value;
            }
            var node = tmp_1;
            if (!(xmlBefore == null)) {
              var tmp_2 = 0;
              var tmp_3 = xmlBefore.length;
              // Inline function 'kotlin.arrayOfNulls' call
              var tmp_4 = fillArrayVal(Array(tmp_3), null);
              while (tmp_2 < tmp_3) {
                var tmp_5 = tmp_2;
                var name = xmlBefore[tmp_5];
                // Inline function 'kotlin.collections.getOrPut' call
                var value_0 = orderNodes.get_wei43m_k$(name);
                var tmp_6;
                if (value_0 == null) {
                  // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.initialChildReorderMap.<anonymous>' call
                  var answer_0 = new XmlOrderNode(initialChildReorderMap$toChildIndex(name, nameToIdx, parentDescriptor));
                  orderNodes.put_4fpzoq_k$(name, answer_0);
                  tmp_6 = answer_0;
                } else {
                  tmp_6 = value_0;
                }
                tmp_4[tmp_5] = tmp_6;
                tmp_2 = tmp_2 + 1 | 0;
              }
              var befores = tmp_4;
              node.addSuccessors_55lsf_k$(befores.slice());
            }
            if (!(xmlAfter == null)) {
              var tmp_7 = 0;
              var tmp_8 = xmlAfter.length;
              // Inline function 'kotlin.arrayOfNulls' call
              var tmp_9 = fillArrayVal(Array(tmp_8), null);
              while (tmp_7 < tmp_8) {
                var tmp_10 = tmp_7;
                var name_0 = xmlAfter[tmp_10];
                // Inline function 'kotlin.collections.getOrPut' call
                var value_1 = orderNodes.get_wei43m_k$(name_0);
                var tmp_11;
                if (value_1 == null) {
                  // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.initialChildReorderMap.<anonymous>' call
                  var answer_1 = new XmlOrderNode(initialChildReorderMap$toChildIndex(name_0, nameToIdx, parentDescriptor));
                  orderNodes.put_4fpzoq_k$(name_0, answer_1);
                  tmp_11 = answer_1;
                } else {
                  tmp_11 = value_1;
                }
                tmp_9[tmp_10] = tmp_11;
                tmp_7 = tmp_7 + 1 | 0;
              }
              var afters = tmp_9;
              node.addPredecessors_jpp8ek_k$(afters.slice());
            }
          }
        }
      }
       while (inductionVariable < last);
    if (orderNodes.isEmpty_y1axqb_k$())
      return null;
    return orderConstraints.isEmpty_y1axqb_k$() ? null : toList(orderConstraints);
  };
  protoOf(DefaultXmlSerializationPolicy).updateReorderMap_qo0tl2_k$ = function (original, children) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList_init_$Create$();
    var tmp0_iterator = original.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.updateReorderMap.<anonymous>' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlOrderConstraint.map' call
      var tmp = updateReorderMap$isAttribute(element.get_before_bdhrwo_k$(), children);
      var tmp$ret$1 = updateReorderMap$isAttribute(element.get_after_iol2gj_k$(), children);
      var tmp0_container = new Pair(tmp, tmp$ret$1);
      var isBeforeAttribute = tmp0_container.component1_7eebsc_k$();
      var isAfterAttribute = tmp0_container.component2_7eebsb_k$();
      if (isBeforeAttribute ? true : !isAfterAttribute) {
        destination.add_utx5q5_k$(element);
      }
    }
    return destination;
  };
  protoOf(DefaultXmlSerializationPolicy).preserveSpace_5xgsvs_k$ = function (serializerParent, tagParent) {
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = serializerParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlIgnoreWhitespace) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var tmp0_safe_receiver = tmp$ret$0;
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.apply' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.preserveSpace.<anonymous>' call
      return !tmp0_safe_receiver.get_value_j01efc_k$();
    }
    var tmp$ret$2;
    $l$block_0: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator_0 = serializerParent.get_elementSerialDescriptor_gvznu_k$().get_annotations_20dirp_k$().iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var e_0 = tmp0_iterator_0.next_20eer_k$();
        if (e_0 instanceof XmlIgnoreWhitespace) {
          tmp$ret$2 = e_0;
          break $l$block_0;
        }
      }
      tmp$ret$2 = null;
    }
    var tmp1_safe_receiver = tmp$ret$2;
    var tmp2_elvis_lhs = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_value_j01efc_k$();
    return !(tmp2_elvis_lhs == null ? false : tmp2_elvis_lhs);
  };
  protoOf(DefaultXmlSerializationPolicy).mapKeyName_yvf7mr_k$ = function (serializerParent) {
    return DeclaredNameInfo_init_$Create$('key');
  };
  protoOf(DefaultXmlSerializationPolicy).mapValueName_j12zti_k$ = function (serializerParent, isListEluded) {
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = serializerParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlChildrenName) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var childAnnotation = tmp$ret$0;
    var childrenName = childAnnotation == null ? null : toQName_0(childAnnotation);
    return new DeclaredNameInfo('value', childrenName, (childAnnotation == null ? null : childAnnotation.get_namespace_t826ya_k$()) === get_UNSET_ANNOTATION_VALUE());
  };
  protoOf(DefaultXmlSerializationPolicy).mapEntryName_7d78fp_k$ = function (serializerParent, isListEluded) {
    if (isListEluded) {
      var tmp0_safe_receiver = serializerParent.get_elementUseNameInfo_t1hkkt_k$().annotatedName_1;
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        return tmp0_safe_receiver;
      }
    }
    return QName_init_$Create$_0(serializerParent.get_namespace_t826ya_k$().get_namespaceURI_g6nmhy_k$(), 'entry');
  };
  protoOf(DefaultXmlSerializationPolicy).isMapValueCollapsed_loa0df_k$ = function (mapParent, valueDescriptor) {
    var keyDescriptor = mapParent.get_elementSerialDescriptor_gvznu_k$().getElementDescriptor_ncda77_k$(0);
    var keyUseName = this.mapKeyName_yvf7mr_k$(mapParent);
    var pseudoKeyParent = new InjectedParentTag(0, new XmlTypeDescriptor(keyDescriptor, mapParent.get_namespace_t826ya_k$()), keyUseName, mapParent.get_namespace_t826ya_k$());
    var keyEffectiveOutputKind = this.effectiveOutputKind_5fu2kr_k$(pseudoKeyParent, pseudoKeyParent, true);
    if (!keyEffectiveOutputKind.get_isTextual_oislr4_k$())
      return false;
    var keyName = this.effectiveName_j2bo7w_k$(pseudoKeyParent, pseudoKeyParent, keyEffectiveOutputKind, keyUseName);
    // Inline function 'kotlin.collections.forEach' call
    // Inline function 'kotlin.collections.map' call
    var this_0 = until(0, valueDescriptor.get_elementsCount_288r0x_k$());
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_0, 10));
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.isMapValueCollapsed.<anonymous>' call
      var tmp$ret$0 = valueDescriptor.getElementDescriptor_ncda77_k$(item);
      destination.add_utx5q5_k$(tmp$ret$0);
    }
    var tmp0_iterator_0 = destination.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator_0.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy.isMapValueCollapsed.<anonymous>' call
      if (isEquivalent(element.get_tagName_ocsgis_k$(), keyName))
        return false;
    }
    return true;
  };
  protoOf(DefaultXmlSerializationPolicy).elementNamespaceDecls_vmvalj_k$ = function (serializerParent) {
    var annotations = plus_1(asSequence_1(serializerParent.get_elementUseAnnotations_y3m8sw_k$()), serializerParent.get_elementTypeDescriptor_rhs6d8_k$().get_serialDescriptor_vvwkac_k$().get_annotations_20dirp_k$());
    // Inline function 'kotlin.sequences.filterIsInstance' call
    var tmp = filter(annotations, DefaultXmlSerializationPolicy$elementNamespaceDecls$lambda);
    var tmp_0 = isInterface(tmp, Sequence) ? tmp : THROW_CCE();
    return toList_0(flatMap(tmp_0, DefaultXmlSerializationPolicy$elementNamespaceDecls$lambda_0));
  };
  protoOf(DefaultXmlSerializationPolicy).ignoredSerialInfo_xjiak6_k$ = function (message) {
    if (this.pedantic_1)
      throw new XmlSerialException(message);
  };
  protoOf(DefaultXmlSerializationPolicy).copy_vk7abj_k$ = function (pedantic, autoPolymorphic, encodeDefault, typeDiscriminatorName) {
    return DefaultXmlSerializationPolicy_init_$Create$(pedantic, autoPolymorphic, encodeDefault, this.unknownChildHandler_1, typeDiscriminatorName);
  };
  protoOf(DefaultXmlSerializationPolicy).copy$default_rf9pgz_k$ = function (pedantic, autoPolymorphic, encodeDefault, typeDiscriminatorName, $super) {
    pedantic = pedantic === VOID ? this.pedantic_1 : pedantic;
    autoPolymorphic = autoPolymorphic === VOID ? this.autoPolymorphic_1 : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? this.encodeDefault_1 : encodeDefault;
    typeDiscriminatorName = typeDiscriminatorName === VOID ? this.typeDiscriminatorName_1 : typeDiscriminatorName;
    return $super === VOID ? this.copy_vk7abj_k$(pedantic, autoPolymorphic, encodeDefault, typeDiscriminatorName) : $super.copy_vk7abj_k$.call(this, pedantic, autoPolymorphic, encodeDefault, typeDiscriminatorName);
  };
  protoOf(DefaultXmlSerializationPolicy).copy_r2j7yh_k$ = function (pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName) {
    return DefaultXmlSerializationPolicy_init_$Create$(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName);
  };
  protoOf(DefaultXmlSerializationPolicy).copy$default_ajunjl_k$ = function (pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName, $super) {
    pedantic = pedantic === VOID ? this.pedantic_1 : pedantic;
    autoPolymorphic = autoPolymorphic === VOID ? this.autoPolymorphic_1 : autoPolymorphic;
    encodeDefault = encodeDefault === VOID ? this.encodeDefault_1 : encodeDefault;
    typeDiscriminatorName = typeDiscriminatorName === VOID ? this.typeDiscriminatorName_1 : typeDiscriminatorName;
    return $super === VOID ? this.copy_r2j7yh_k$(pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName) : $super.copy_r2j7yh_k$.call(this, pedantic, autoPolymorphic, encodeDefault, unknownChildHandler, typeDiscriminatorName);
  };
  function typeQName(_this__u8e3s4, xmlDescriptor) {
    var tmp0_elvis_lhs = xmlDescriptor.get_typeDescriptor_3nmlke_k$().get_typeQname_gvxkmx_k$();
    return tmp0_elvis_lhs == null ? _this__u8e3s4.serialTypeNameToQName_tecixw_k$(xmlDescriptor.get_typeDescriptor_3nmlke_k$().get_typeNameInfo_ievmo4_k$(), xmlDescriptor.get_tagParent_zbggxx_k$().get_namespace_t826ya_k$()) : tmp0_elvis_lhs;
  }
  function XmlSerialName(value, namespace, prefix) {
    value = value === VOID ? 'ZXC\x01VBNBVCXZ' : value;
    namespace = namespace === VOID ? 'ZXC\x01VBNBVCXZ' : namespace;
    prefix = prefix === VOID ? 'ZXC\x01VBNBVCXZ' : prefix;
    this.value_1 = value;
    this.namespace_1 = namespace;
    this.prefix_1 = prefix;
  }
  protoOf(XmlSerialName).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlSerialName).get_namespace_t826ya_k$ = function () {
    return this.namespace_1;
  };
  protoOf(XmlSerialName).get_prefix_i78za3_k$ = function () {
    return this.prefix_1;
  };
  protoOf(XmlSerialName).equals = function (other) {
    if (!(other instanceof XmlSerialName))
      return false;
    var tmp0_other_with_cast = other instanceof XmlSerialName ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    if (!(this.namespace_1 === tmp0_other_with_cast.namespace_1))
      return false;
    if (!(this.prefix_1 === tmp0_other_with_cast.prefix_1))
      return false;
    return true;
  };
  protoOf(XmlSerialName).hashCode = function () {
    var result = imul(getStringHashCode('value'), 127) ^ getStringHashCode(this.value_1);
    result = result + (imul(getStringHashCode('namespace'), 127) ^ getStringHashCode(this.namespace_1)) | 0;
    result = result + (imul(getStringHashCode('prefix'), 127) ^ getStringHashCode(this.prefix_1)) | 0;
    return result;
  };
  protoOf(XmlSerialName).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlSerialName(value=' + this.value_1 + ', namespace=' + this.namespace_1 + ', prefix=' + this.prefix_1 + ')';
  };
  function get_UNSET_ANNOTATION_VALUE() {
    return UNSET_ANNOTATION_VALUE;
  }
  var UNSET_ANNOTATION_VALUE;
  function XmlPolyChildren(value) {
    this.value_1 = value;
  }
  protoOf(XmlPolyChildren).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlPolyChildren).equals = function (other) {
    if (!(other instanceof XmlPolyChildren))
      return false;
    var tmp0_other_with_cast = other instanceof XmlPolyChildren ? other : THROW_CCE();
    if (!contentEquals(this.value_1, tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlPolyChildren).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ hashCode(this.value_1);
  };
  protoOf(XmlPolyChildren).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlPolyChildren(value=' + toString(this.value_1) + ')';
  };
  function XmlElement(value) {
    value = value === VOID ? true : value;
    this.value_1 = value;
  }
  protoOf(XmlElement).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlElement).equals = function (other) {
    if (!(other instanceof XmlElement))
      return false;
    var tmp0_other_with_cast = other instanceof XmlElement ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlElement).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ getBooleanHashCode(this.value_1);
  };
  protoOf(XmlElement).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlElement(value=' + this.value_1 + ')';
  };
  function XmlId() {
  }
  protoOf(XmlId).equals = function (other) {
    if (!(other instanceof XmlId))
      return false;
    other instanceof XmlId || THROW_CCE();
    return true;
  };
  protoOf(XmlId).hashCode = function () {
    return 0;
  };
  protoOf(XmlId).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlId()';
  };
  function XmlValue(value) {
    value = value === VOID ? true : value;
    this.value_1 = value;
  }
  protoOf(XmlValue).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlValue).equals = function (other) {
    if (!(other instanceof XmlValue))
      return false;
    var tmp0_other_with_cast = other instanceof XmlValue ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlValue).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ getBooleanHashCode(this.value_1);
  };
  protoOf(XmlValue).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlValue(value=' + this.value_1 + ')';
  };
  function XmlChildrenName(value, namespace, prefix) {
    namespace = namespace === VOID ? 'ZXC\x01VBNBVCXZ' : namespace;
    prefix = prefix === VOID ? 'ZXC\x01VBNBVCXZ' : prefix;
    this.value_1 = value;
    this.namespace_1 = namespace;
    this.prefix_1 = prefix;
  }
  protoOf(XmlChildrenName).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlChildrenName).get_namespace_t826ya_k$ = function () {
    return this.namespace_1;
  };
  protoOf(XmlChildrenName).get_prefix_i78za3_k$ = function () {
    return this.prefix_1;
  };
  protoOf(XmlChildrenName).equals = function (other) {
    if (!(other instanceof XmlChildrenName))
      return false;
    var tmp0_other_with_cast = other instanceof XmlChildrenName ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    if (!(this.namespace_1 === tmp0_other_with_cast.namespace_1))
      return false;
    if (!(this.prefix_1 === tmp0_other_with_cast.prefix_1))
      return false;
    return true;
  };
  protoOf(XmlChildrenName).hashCode = function () {
    var result = imul(getStringHashCode('value'), 127) ^ getStringHashCode(this.value_1);
    result = result + (imul(getStringHashCode('namespace'), 127) ^ getStringHashCode(this.namespace_1)) | 0;
    result = result + (imul(getStringHashCode('prefix'), 127) ^ getStringHashCode(this.prefix_1)) | 0;
    return result;
  };
  protoOf(XmlChildrenName).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlChildrenName(value=' + this.value_1 + ', namespace=' + this.namespace_1 + ', prefix=' + this.prefix_1 + ')';
  };
  function XmlCData(value) {
    value = value === VOID ? true : value;
    this.value_1 = value;
  }
  protoOf(XmlCData).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlCData).equals = function (other) {
    if (!(other instanceof XmlCData))
      return false;
    var tmp0_other_with_cast = other instanceof XmlCData ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlCData).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ getBooleanHashCode(this.value_1);
  };
  protoOf(XmlCData).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlCData(value=' + this.value_1 + ')';
  };
  function XmlDefault(value) {
    this.value_1 = value;
  }
  protoOf(XmlDefault).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlDefault).equals = function (other) {
    if (!(other instanceof XmlDefault))
      return false;
    var tmp0_other_with_cast = other instanceof XmlDefault ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlDefault).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ getStringHashCode(this.value_1);
  };
  protoOf(XmlDefault).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlDefault(value=' + this.value_1 + ')';
  };
  function XmlOtherAttributes() {
  }
  protoOf(XmlOtherAttributes).equals = function (other) {
    if (!(other instanceof XmlOtherAttributes))
      return false;
    other instanceof XmlOtherAttributes || THROW_CCE();
    return true;
  };
  protoOf(XmlOtherAttributes).hashCode = function () {
    return 0;
  };
  protoOf(XmlOtherAttributes).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlOtherAttributes()';
  };
  function XmlBefore(value) {
    this.value_1 = value;
  }
  protoOf(XmlBefore).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlBefore).equals = function (other) {
    if (!(other instanceof XmlBefore))
      return false;
    var tmp0_other_with_cast = other instanceof XmlBefore ? other : THROW_CCE();
    if (!contentEquals(this.value_1, tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlBefore).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ hashCode(this.value_1);
  };
  protoOf(XmlBefore).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlBefore(value=' + toString(this.value_1) + ')';
  };
  function XmlAfter(value) {
    this.value_1 = value;
  }
  protoOf(XmlAfter).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlAfter).equals = function (other) {
    if (!(other instanceof XmlAfter))
      return false;
    var tmp0_other_with_cast = other instanceof XmlAfter ? other : THROW_CCE();
    if (!contentEquals(this.value_1, tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlAfter).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ hashCode(this.value_1);
  };
  protoOf(XmlAfter).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlAfter(value=' + toString(this.value_1) + ')';
  };
  function XmlIgnoreWhitespace(value) {
    value = value === VOID ? true : value;
    this.value_1 = value;
  }
  protoOf(XmlIgnoreWhitespace).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlIgnoreWhitespace).equals = function (other) {
    if (!(other instanceof XmlIgnoreWhitespace))
      return false;
    var tmp0_other_with_cast = other instanceof XmlIgnoreWhitespace ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlIgnoreWhitespace).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ getBooleanHashCode(this.value_1);
  };
  protoOf(XmlIgnoreWhitespace).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlIgnoreWhitespace(value=' + this.value_1 + ')';
  };
  function XmlNamespaceDeclSpec(value) {
    this.value_1 = value;
  }
  protoOf(XmlNamespaceDeclSpec).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(XmlNamespaceDeclSpec).equals = function (other) {
    if (!(other instanceof XmlNamespaceDeclSpec))
      return false;
    var tmp0_other_with_cast = other instanceof XmlNamespaceDeclSpec ? other : THROW_CCE();
    if (!(this.value_1 === tmp0_other_with_cast.value_1))
      return false;
    return true;
  };
  protoOf(XmlNamespaceDeclSpec).hashCode = function () {
    return imul(getStringHashCode('value'), 127) ^ getStringHashCode(this.value_1);
  };
  protoOf(XmlNamespaceDeclSpec).toString = function () {
    return '@nl.adaptivity.xmlutil.serialization.XmlNamespaceDeclSpec(value=' + this.value_1 + ')';
  };
  function get_namespaces(_this__u8e3s4) {
    // Inline function 'kotlin.collections.map' call
    var this_0 = split_0(_this__u8e3s4.value_1, charArrayOf([_Char___init__impl__6a9atx(59)]));
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_0, 10));
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var item = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.<get-namespaces>.<anonymous>' call
      var eq = indexOf(item, _Char___init__impl__6a9atx(61));
      var tmp;
      if (eq === -1) {
        tmp = new NamespaceImpl('', item);
      } else {
        // Inline function 'kotlin.text.substring' call
        // Inline function 'kotlin.js.asDynamic' call
        var tmp_0 = item.substring(0, eq);
        // Inline function 'kotlin.text.substring' call
        var startIndex = eq + 1 | 0;
        // Inline function 'kotlin.js.asDynamic' call
        var tmp$ret$3 = item.substring(startIndex);
        tmp = new NamespaceImpl(tmp_0, tmp$ret$3);
      }
      var tmp$ret$4 = tmp;
      destination.add_utx5q5_k$(tmp$ret$4);
    }
    return destination;
  }
  function _get_wantedBaseClass__4uwz6v($this) {
    return $this.wantedBaseClass_1;
  }
  function ChildCollector(wantedBaseClass) {
    wantedBaseClass = wantedBaseClass === VOID ? null : wantedBaseClass;
    this.wantedBaseClass_1 = wantedBaseClass;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.children_1 = ArrayList_init_$Create$();
  }
  protoOf(ChildCollector).get_children_4cwbp4_k$ = function () {
    return this.children_1;
  };
  protoOf(ChildCollector).polymorphicDefaultDeserializer_ur850q_k$ = function (baseClass, defaultDeserializerProvider) {
  };
  protoOf(ChildCollector).polymorphicDefaultSerializer_vvzf8a_k$ = function (baseClass, defaultSerializerProvider) {
  };
  protoOf(ChildCollector).contextual_s0h8js_k$ = function (kClass, serializer) {
  };
  protoOf(ChildCollector).contextual_lh3eph_k$ = function (kClass, provider) {
  };
  protoOf(ChildCollector).polymorphic_74dxah_k$ = function (baseClass, actualClass, actualSerializer) {
    if (this.wantedBaseClass_1 == null ? true : equals(this.wantedBaseClass_1, baseClass)) {
      this.children_1.add_utx5q5_k$(actualSerializer);
    }
  };
  function consumeChunksFromString(str, consumeChunk) {
    var startIdx = 0;
    var endIdx = startIdx + 16384 | 0;
    while ((startIdx + 16384 | 0) < str.length) {
      // Inline function 'kotlin.text.substring' call
      var startIndex = startIdx;
      var endIndex = endIdx;
      // Inline function 'kotlin.js.asDynamic' call
      consumeChunk(str.substring(startIndex, endIndex));
      startIdx = endIdx;
      endIdx = startIdx + 16384 | 0;
    }
    // Inline function 'kotlin.text.substring' call
    var startIndex_0 = startIdx;
    // Inline function 'kotlin.js.asDynamic' call
    consumeChunk(str.substring(startIndex_0));
  }
  function readSimpleElementChunked(_this__u8e3s4, consumeChunk) {
    var t = _this__u8e3s4;
    t.require_glcost_k$(EventType_START_ELEMENT_getInstance(), null, null);
    while (!(t.next_20eer_k$() === EventType_END_ELEMENT_getInstance())) {
      switch (t.get_eventType_918hfv_k$().get_ordinal_ip24qg_k$()) {
        case 3:
        case 11:
          break;
        case 9:
        case 4:
        case 8:
        case 5:
          consumeChunksFromString(t.get_text_wouvsm_k$(), consumeChunk);
          break;
        default:
          throw XmlException_init_$Create$('Expected text content or end tag, found: ' + t.get_eventType_918hfv_k$());
      }
    }
  }
  function allConsecutiveTextContentChunked(_this__u8e3s4, consumeChunk) {
    var t = _this__u8e3s4;
    if (_this__u8e3s4.get_eventType_918hfv_k$().get_isTextElement_53s5zw_k$() ? true : _this__u8e3s4.get_eventType_918hfv_k$().equals(EventType_IGNORABLE_WHITESPACE_getInstance())) {
      consumeChunksFromString(_this__u8e3s4.get_text_wouvsm_k$(), consumeChunk);
    }
    var event = null;
    loop: while (true) {
      // Inline function 'kotlin.apply' call
      var this_0 = t.peek_21nx7_k$();
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.impl.allConsecutiveTextContentChunked.<anonymous>' call
      event = this_0;
      if (!!((this_0 == null ? null : this_0.get_eventType_918hfv_k$()) === EventType_END_ELEMENT_getInstance())) {
        break loop;
      }
      var tmp1_safe_receiver = event;
      var tmp2_subject = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_eventType_918hfv_k$();
      switch (tmp2_subject == null ? -1 : tmp2_subject.get_ordinal_ip24qg_k$()) {
        case 11:
        case 3:
          t.next_20eer_k$();
          break;
        case 9:
        case 4:
        case 8:
        case 5:
          t.next_20eer_k$();
          consumeChunksFromString(t.get_text_wouvsm_k$(), consumeChunk);
          break;
        case 1:
          break loop;
        default:
          throw XmlException_init_$Create$('Found unexpected child tag: ' + event);
      }
    }
  }
  function allTextChunked(_this__u8e3s4, consumeChunk) {
    var t = _this__u8e3s4;
    var writtenChunk = false;
    var tmp;
    if (_this__u8e3s4.get_eventType_918hfv_k$().get_isTextElement_53s5zw_k$()) {
      // Inline function 'kotlin.text.isNotEmpty' call
      var this_0 = _this__u8e3s4.get_text_wouvsm_k$();
      tmp = charSequenceLength(this_0) > 0;
    } else {
      tmp = false;
    }
    if (tmp) {
      writtenChunk = true;
      consumeChunksFromString(_this__u8e3s4.get_text_wouvsm_k$(), consumeChunk);
    }
    var type;
    $l$loop: while (true) {
      // Inline function 'kotlin.apply' call
      var this_1 = t.next_20eer_k$();
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.impl.allTextChunked.<anonymous>' call
      type = this_1;
      if (!!(this_1 === EventType_END_ELEMENT_getInstance())) {
        break $l$loop;
      }
      switch (type == null ? -1 : type.get_ordinal_ip24qg_k$()) {
        case 11:
        case 3:
          break;
        case 9:
          if (writtenChunk) {
            consumeChunksFromString(t.get_text_wouvsm_k$(), consumeChunk);
          }

          break;
        case 8:
        case 4:
        case 5:
          // Inline function 'kotlin.text.isNotEmpty' call

          var this_2 = t.get_text_wouvsm_k$();
          if (charSequenceLength(this_2) > 0) {
            writtenChunk = true;
            consumeChunksFromString(t.get_text_wouvsm_k$(), consumeChunk);
          }

          break;
        default:
          throw XmlException_init_$Create$('Found unexpected child tag with type: ' + type);
      }
    }
    if (!writtenChunk)
      consumeChunk('');
  }
  function get_MAXCHUNKSIZE() {
    return MAXCHUNKSIZE;
  }
  var MAXCHUNKSIZE;
  function DummyDecoder(value) {
    this.value_1 = value;
  }
  protoOf(DummyDecoder).get_value_j01efc_k$ = function () {
    return this.value_1;
  };
  protoOf(DummyDecoder).get_serializersModule_piitvg_k$ = function () {
    return EmptySerializersModule();
  };
  protoOf(DummyDecoder).decodeBoolean_m0aca_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'boolean' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeByte_jzz7je_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'number' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeChar_dcmcfa_k$ = function () {
    var tmp = this.value_1;
    return tmp instanceof Char ? tmp.value_1 : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeDouble_ur8l0f_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'number' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeFloat_jcnrwu_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'number' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeInt_8iq8f5_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'number' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeLong_jzt186_k$ = function () {
    var tmp = this.value_1;
    return tmp instanceof Long ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeShort_jjqk32_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'number' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeString_x3hxsx_k$ = function () {
    var tmp = this.value_1;
    return (!(tmp == null) ? typeof tmp === 'string' : false) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeEnum_slg6lu_k$ = function (enumDescriptor) {
    var tmp = this.value_1;
    return (tmp instanceof Enum ? tmp : THROW_CCE()).get_ordinal_ip24qg_k$();
  };
  protoOf(DummyDecoder).decodeSerializableValue_xpnpad_k$ = function (deserializer) {
    var tmp = this.value_1;
    return (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
  };
  protoOf(DummyDecoder).decodeInline_ux3vza_k$ = function (inlineDescriptor) {
    return this;
  };
  protoOf(DummyDecoder).decodeNotNullMark_us4ba1_k$ = function () {
    return this.value_1 == null;
  };
  protoOf(DummyDecoder).decodeNull_jzrmuj_k$ = function () {
    var tmp = this.value_1;
    var tmp_0;
    var tmp_1;
    if (tmp == null) {
      tmp_1 = true;
    } else {
      tmp_1 = false;
    }
    if (tmp_1) {
      tmp_0 = tmp;
    } else {
      tmp_0 = THROW_CCE();
    }
    return tmp_0;
  };
  protoOf(DummyDecoder).beginStructure_yljocp_k$ = function (descriptor) {
    throw UnsupportedOperationException_init_$Create$('Explicit decoding of elements of hardcoded values is not supported');
  };
  function _get_prefixToUriMap__xbn7ta($this) {
    return $this.prefixToUriMap_1;
  }
  function _get_uriToPrefixMap__zahtiw($this) {
    return $this.uriToPrefixMap_1;
  }
  function _get_pendingNamespaces__gt4i4i($this) {
    return $this.pendingNamespaces_1;
  }
  function recordNamespace($this, prefix, namespaceUri) {
    // Inline function 'kotlin.collections.contains' call
    // Inline function 'kotlin.collections.containsKey' call
    var this_0 = $this.uriToPrefixMap_1;
    if (!(isInterface(this_0, Map) ? this_0 : THROW_CCE()).containsKey_aw81wo_k$(namespaceUri)) {
      // Inline function 'kotlin.text.isEmpty' call
      if (charSequenceLength(namespaceUri) === 0) {
        var existingDefaultNamespace = $this.prefixToUriMap_1.get_wei43m_k$('');
        if (!(existingDefaultNamespace == null)) {
          $this.uriToPrefixMap_1.remove_gppy8k_k$(existingDefaultNamespace);
          $this.pendingNamespaces_1.add_utx5q5_k$(existingDefaultNamespace);
        }
        // Inline function 'kotlin.collections.set' call
        $this.uriToPrefixMap_1.put_4fpzoq_k$('', '');
        // Inline function 'kotlin.collections.set' call
        $this.prefixToUriMap_1.put_4fpzoq_k$('', '');
      } else {
        // Inline function 'kotlin.collections.contains' call
        // Inline function 'kotlin.collections.containsKey' call
        var this_1 = $this.prefixToUriMap_1;
        if ((isInterface(this_1, Map) ? this_1 : THROW_CCE()).containsKey_aw81wo_k$(prefix)) {
          $this.pendingNamespaces_1.add_utx5q5_k$(namespaceUri);
        } else {
          if ($this.pendingNamespaces_1.contains_aljjnj_k$(namespaceUri)) {
            $this.pendingNamespaces_1.remove_cedx0m_k$(namespaceUri);
          }
          // Inline function 'kotlin.collections.set' call
          $this.prefixToUriMap_1.put_4fpzoq_k$(prefix, namespaceUri);
          // Inline function 'kotlin.collections.set' call
          $this.uriToPrefixMap_1.put_4fpzoq_k$(namespaceUri, prefix);
        }
      }
    }
  }
  function NamespaceCollectingXmlWriter$namespaceContext$1(this$0) {
    this.this$0__1 = this$0;
  }
  protoOf(NamespaceCollectingXmlWriter$namespaceContext$1).getPrefix_7o0aoe_k$ = function (namespaceURI) {
    return this.this$0__1.getPrefix_r4en0f_k$(namespaceURI);
  };
  protoOf(NamespaceCollectingXmlWriter$namespaceContext$1).getNamespaceURI_859c43_k$ = function (prefix) {
    return this.this$0__1.getNamespaceUri_buhtgt_k$(prefix);
  };
  protoOf(NamespaceCollectingXmlWriter$namespaceContext$1).getPrefixesCompat_d6ifqa_k$ = function (namespaceURI) {
    return listOfNotNull(this.getPrefix_7o0aoe_k$(namespaceURI)).iterator_jk1svi_k$();
  };
  function NamespaceCollectingXmlWriter(prefixToUriMap, uriToPrefixMap, pendingNamespaces) {
    this.prefixToUriMap_1 = prefixToUriMap;
    this.uriToPrefixMap_1 = uriToPrefixMap;
    this.pendingNamespaces_1 = pendingNamespaces;
    this.depth_1 = 0;
    this.indentString_1 = '';
  }
  protoOf(NamespaceCollectingXmlWriter).set_depth_v0xlni_k$ = function (_set____db54di) {
    this.depth_1 = _set____db54di;
  };
  protoOf(NamespaceCollectingXmlWriter).get_depth_iq7qmy_k$ = function () {
    return this.depth_1;
  };
  protoOf(NamespaceCollectingXmlWriter).set_indentString_30d8vk_k$ = function (_set____db54di) {
    this.indentString_1 = _set____db54di;
  };
  protoOf(NamespaceCollectingXmlWriter).get_indentString_li4jl2_k$ = function () {
    return this.indentString_1;
  };
  protoOf(NamespaceCollectingXmlWriter).setPrefix_e36xz8_k$ = function (prefix, namespaceUri) {
    recordNamespace(this, prefix, namespaceUri);
  };
  protoOf(NamespaceCollectingXmlWriter).namespaceAttr_vkifxg_k$ = function (namespacePrefix, namespaceUri) {
    recordNamespace(this, namespacePrefix, namespaceUri);
  };
  protoOf(NamespaceCollectingXmlWriter).getNamespaceUri_buhtgt_k$ = function (prefix) {
    return this.prefixToUriMap_1.get_wei43m_k$(prefix);
  };
  protoOf(NamespaceCollectingXmlWriter).getPrefix_r4en0f_k$ = function (namespaceUri) {
    // Inline function 'kotlin.collections.get' call
    var this_0 = this.uriToPrefixMap_1;
    return (isInterface(this_0, Map) ? this_0 : THROW_CCE()).get_wei43m_k$(namespaceUri);
  };
  protoOf(NamespaceCollectingXmlWriter).attribute_ruzjv8_k$ = function (namespace, name, prefix, value) {
    if (namespace === XMLConstants_getInstance().get_XMLNS_ATTRIBUTE_NS_URI_xtsf1b_k$()) {
      if (prefix === XMLConstants_getInstance().get_XMLNS_ATTRIBUTE_883gnk_k$()) {
        this.namespaceAttr_vkifxg_k$(prefix, value);
      } else if (prefix === '') {
        this.namespaceAttr_vkifxg_k$(name, value);
      }
    }
  };
  protoOf(NamespaceCollectingXmlWriter).get_namespaceContext_n7n1ib_k$ = function () {
    return new NamespaceCollectingXmlWriter$namespaceContext$1(this);
  };
  protoOf(NamespaceCollectingXmlWriter).startTag_pjuzbi_k$ = function (namespace, localName, prefix) {
    this.depth_1 = this.depth_1 + 1 | 0;
  };
  protoOf(NamespaceCollectingXmlWriter).endTag_yzukbv_k$ = function (namespace, localName, prefix) {
    this.depth_1 = this.depth_1 - 1 | 0;
  };
  protoOf(NamespaceCollectingXmlWriter).close_yn9xrc_k$ = function () {
  };
  protoOf(NamespaceCollectingXmlWriter).flush_shahbo_k$ = function () {
  };
  protoOf(NamespaceCollectingXmlWriter).comment_dbctn9_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).text_x72pul_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).cdsect_yhnzeu_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).entityRef_cqd3i2_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).processingInstruction_2btz8x_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).ignorableWhitespace_7szqkg_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).docdecl_aom8aw_k$ = function (text) {
  };
  protoOf(NamespaceCollectingXmlWriter).startDocument_dbnt67_k$ = function (version, encoding, standalone) {
  };
  protoOf(NamespaceCollectingXmlWriter).endDocument_lstnba_k$ = function () {
  };
  function remapPrefix(_this__u8e3s4, $this) {
    var prefixMap = $this.prefixMap_1;
    return remapPrefix_0(_this__u8e3s4, prefixMap);
  }
  function PrefixWrappingPolicy(basePolicy, prefixMap) {
    this.basePolicy_1 = basePolicy;
    this.prefixMap_1 = prefixMap;
  }
  protoOf(PrefixWrappingPolicy).get_basePolicy_z73v9w_k$ = function () {
    return this.basePolicy_1;
  };
  protoOf(PrefixWrappingPolicy).get_prefixMap_ctlyrj_k$ = function () {
    return this.prefixMap_1;
  };
  protoOf(PrefixWrappingPolicy).get_defaultObjectOutputKind_gtu6d0_k$ = function () {
    return this.basePolicy_1.get_defaultObjectOutputKind_gtu6d0_k$();
  };
  protoOf(PrefixWrappingPolicy).get_defaultPrimitiveOutputKind_xh7b3w_k$ = function () {
    return this.basePolicy_1.get_defaultPrimitiveOutputKind_xh7b3w_k$();
  };
  protoOf(PrefixWrappingPolicy).get_isStrictNames_80ezws_k$ = function () {
    return this.basePolicy_1.get_isStrictNames_80ezws_k$();
  };
  protoOf(PrefixWrappingPolicy).get_verifyElementOrder_ilkdrg_k$ = function () {
    return this.basePolicy_1.get_verifyElementOrder_ilkdrg_k$();
  };
  protoOf(PrefixWrappingPolicy).attributeListDelimiters_mtw9o_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.attributeListDelimiters_mtw9o_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).defaultOutputKind_cvtlao_k$ = function (serialKind) {
    return this.basePolicy_1.defaultOutputKind_cvtlao_k$(serialKind);
  };
  protoOf(PrefixWrappingPolicy).effectiveOutputKind_22mmoq_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.effectiveOutputKind_22mmoq_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).effectiveOutputKind_5fu2kr_k$ = function (serializerParent, tagParent, canBeAttribute) {
    return this.basePolicy_1.effectiveOutputKind_5fu2kr_k$(serializerParent, tagParent, canBeAttribute);
  };
  protoOf(PrefixWrappingPolicy).elementNamespaceDecls_vmvalj_k$ = function (serializerParent) {
    return this.basePolicy_1.elementNamespaceDecls_vmvalj_k$(serializerParent);
  };
  protoOf(PrefixWrappingPolicy).enumEncoding_gn3znf_k$ = function (enumDescriptor, index) {
    return this.basePolicy_1.enumEncoding_gn3znf_k$(enumDescriptor, index);
  };
  protoOf(PrefixWrappingPolicy).handleAttributeOrderConflict_l5t2w2_k$ = function (serializerParent, tagParent, outputKind) {
    return this.basePolicy_1.handleAttributeOrderConflict_l5t2w2_k$(serializerParent, tagParent, outputKind);
  };
  protoOf(PrefixWrappingPolicy).handleUnknownContent_qgq844_k$ = function (input, inputKind, name, candidates) {
    this.basePolicy_1.handleUnknownContent_qgq844_k$(input, inputKind, name, candidates);
  };
  protoOf(PrefixWrappingPolicy).handleUnknownContentRecovering_6yvbuy_k$ = function (input, inputKind, descriptor, name, candidates) {
    return this.basePolicy_1.handleUnknownContentRecovering_6yvbuy_k$(input, inputKind, descriptor, name, candidates);
  };
  protoOf(PrefixWrappingPolicy).ignoredSerialInfo_xjiak6_k$ = function (message) {
    this.basePolicy_1.ignoredSerialInfo_xjiak6_k$(message);
  };
  protoOf(PrefixWrappingPolicy).initialChildReorderMap_qu5t4o_k$ = function (parentDescriptor) {
    return this.basePolicy_1.initialChildReorderMap_qu5t4o_k$(parentDescriptor);
  };
  protoOf(PrefixWrappingPolicy).invalidOutputKind_bwpkf2_k$ = function (message) {
    this.basePolicy_1.invalidOutputKind_bwpkf2_k$(message);
  };
  protoOf(PrefixWrappingPolicy).isListEluded_iwbfwl_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.isListEluded_iwbfwl_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).isMapValueCollapsed_loa0df_k$ = function (mapParent, valueDescriptor) {
    return this.basePolicy_1.isMapValueCollapsed_loa0df_k$(mapParent, valueDescriptor);
  };
  protoOf(PrefixWrappingPolicy).isTransparentPolymorphic_44l9f8_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.isTransparentPolymorphic_44l9f8_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).mapKeyName_yvf7mr_k$ = function (serializerParent) {
    return this.basePolicy_1.mapKeyName_yvf7mr_k$(serializerParent);
  };
  protoOf(PrefixWrappingPolicy).mapValueName_j12zti_k$ = function (serializerParent, isListEluded) {
    return this.basePolicy_1.mapValueName_j12zti_k$(serializerParent, isListEluded);
  };
  protoOf(PrefixWrappingPolicy).onElementRepeated_an4ewl_k$ = function (parentDescriptor, childIndex) {
    this.basePolicy_1.onElementRepeated_an4ewl_k$(parentDescriptor, childIndex);
  };
  protoOf(PrefixWrappingPolicy).overrideSerializerOrNull_kprih2_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.overrideSerializerOrNull_kprih2_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).polymorphicDiscriminatorName_x4ry6p_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.polymorphicDiscriminatorName_x4ry6p_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).preserveSpace_5xgsvs_k$ = function (serializerParent, tagParent) {
    return this.basePolicy_1.preserveSpace_5xgsvs_k$(serializerParent, tagParent);
  };
  protoOf(PrefixWrappingPolicy).shouldEncodeElementDefault_88zm81_k$ = function (elementDescriptor) {
    return this.basePolicy_1.shouldEncodeElementDefault_88zm81_k$(elementDescriptor);
  };
  protoOf(PrefixWrappingPolicy).updateReorderMap_qo0tl2_k$ = function (original, children) {
    return this.basePolicy_1.updateReorderMap_qo0tl2_k$(original, children);
  };
  protoOf(PrefixWrappingPolicy).effectiveName_j2bo7w_k$ = function (serializerParent, tagParent, outputKind, useName) {
    return remapPrefix(this.basePolicy_1.effectiveName_j2bo7w_k$(serializerParent, tagParent, outputKind, useName), this);
  };
  protoOf(PrefixWrappingPolicy).serialTypeNameToQName_tecixw_k$ = function (typeNameInfo, parentNamespace) {
    return remapPrefix(this.basePolicy_1.serialTypeNameToQName_tecixw_k$(typeNameInfo, parentNamespace), this);
  };
  protoOf(PrefixWrappingPolicy).serialUseNameToQName_kw9l0h_k$ = function (useNameInfo, parentNamespace) {
    return remapPrefix(this.basePolicy_1.serialUseNameToQName_kw9l0h_k$(useNameInfo, parentNamespace), this);
  };
  protoOf(PrefixWrappingPolicy).serialNameToQName_rvd6v8_k$ = function (serialName, parentNamespace) {
    return remapPrefix(this.basePolicy_1.serialNameToQName_rvd6v8_k$(serialName, parentNamespace), this);
  };
  protoOf(PrefixWrappingPolicy).mapEntryName_7d78fp_k$ = function (serializerParent, isListEluded) {
    return remapPrefix(mapEntryName.call(this, serializerParent, isListEluded), this);
  };
  function remapPrefix_0(_this__u8e3s4, prefixMap) {
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var tmp = _this__u8e3s4.getNamespaceURI_665tvr_k$();
    // Inline function 'nl.adaptivity.xmlutil.localPart' call
    var tmp_0 = _this__u8e3s4.getLocalPart_k3cdyw_k$();
    // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
    var tmp$ret$2 = _this__u8e3s4.getNamespaceURI_665tvr_k$();
    var tmp0_elvis_lhs = prefixMap.get_wei43m_k$(tmp$ret$2);
    var tmp_1;
    if (tmp0_elvis_lhs == null) {
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      tmp_1 = _this__u8e3s4.getPrefix_bu8bd4_k$();
    } else {
      tmp_1 = tmp0_elvis_lhs;
    }
    return new QName(tmp, tmp_0, tmp_1);
  }
  function XmlQNameSerializer$descriptor$lambda($this$buildSerialDescriptor) {
    $this$buildSerialDescriptor.set_annotations_x27pt8_k$(listOf(new XmlSerialName('QName', XMLConstants_getInstance().get_XSD_NS_URI_xwfbdb_k$(), XMLConstants_getInstance().get_XSD_PREFIX_wzcs5r_k$())));
    return Unit_getInstance();
  }
  function XmlQNameSerializer() {
    XmlQNameSerializer_instance = this;
    var tmp = this;
    var tmp_0 = STRING_getInstance();
    tmp.descriptor_1 = buildSerialDescriptor('javax.xml.namespace.QName', tmp_0, [], XmlQNameSerializer$descriptor$lambda);
  }
  protoOf(XmlQNameSerializer).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(XmlQNameSerializer).deserialize_sy6x50_k$ = function (decoder) {
    if (!isInterface(decoder, XmlInput))
      throw SerializationException_init_$Create$('QNameXmlSerializer only makes sense in an XML context');
    var namespaceContext = decoder.get_input_it4gip_k$().get_namespaceContext_n7n1ib_k$().freeze_kxzejt_k$();
    // Inline function 'kotlin.text.trim' call
    var this_0 = decoder.decodeString_x3hxsx_k$();
    var prefixedName = toString(trim(isCharSequence(this_0) ? this_0 : THROW_CCE()));
    var cIndex = indexOf(prefixedName, _Char___init__impl__6a9atx(58));
    var prefix;
    var namespace;
    var localPart;
    if (cIndex < 0) {
      prefix = '';
      localPart = prefixedName;
      var tmp0_elvis_lhs = namespaceContext.getNamespaceURI_859c43_k$('');
      namespace = tmp0_elvis_lhs == null ? '' : tmp0_elvis_lhs;
    } else {
      // Inline function 'kotlin.text.substring' call
      // Inline function 'kotlin.js.asDynamic' call
      prefix = prefixedName.substring(0, cIndex);
      // Inline function 'kotlin.text.substring' call
      var startIndex = cIndex + 1 | 0;
      // Inline function 'kotlin.js.asDynamic' call
      localPart = prefixedName.substring(startIndex);
      var tmp1_elvis_lhs = namespaceContext.getNamespaceURI_859c43_k$(prefix);
      var tmp;
      if (tmp1_elvis_lhs == null) {
        throw SerializationException_init_$Create$('Missing namespace for prefix ' + prefix + ' in QName value');
      } else {
        tmp = tmp1_elvis_lhs;
      }
      namespace = tmp;
    }
    return new QName(namespace, localPart, prefix);
  };
  protoOf(XmlQNameSerializer).serialize_n8ddsu_k$ = function (encoder, value) {
    if (!isInterface(encoder, XmlOutput))
      throw SerializationException_init_$Create$('QNameXmlSerializer only makes sense in an XML context');
    // Inline function 'nl.adaptivity.xmlutil.prefix' call
    var tmp = value.getPrefix_bu8bd4_k$();
    // Inline function 'nl.adaptivity.xmlutil.localPart' call
    var tmp$ret$1 = value.getLocalPart_k3cdyw_k$();
    encoder.encodeString_424b5v_k$(tmp + ':' + tmp$ret$1);
  };
  protoOf(XmlQNameSerializer).serialize_5ase3y_k$ = function (encoder, value) {
    return this.serialize_n8ddsu_k$(encoder, value instanceof QName ? value : THROW_CCE());
  };
  var XmlQNameSerializer_instance;
  function XmlQNameSerializer_getInstance() {
    if (XmlQNameSerializer_instance == null)
      new XmlQNameSerializer();
    return XmlQNameSerializer_instance;
  }
  function XmlRootDescriptor_init_$Init$(config, serializersModule, descriptor, $this) {
    XmlRootDescriptor.call($this, config, serializersModule, descriptor, null, false);
    return $this;
  }
  function XmlRootDescriptor_init_$Create$(config, serializersModule, descriptor) {
    return XmlRootDescriptor_init_$Init$(config, serializersModule, descriptor, objectCreate(protoOf(XmlRootDescriptor)));
  }
  function _get_element__z0t21h($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.element$delegate_1;
    element$factory();
    return this_0.get_value_j01efc_k$();
  }
  function XmlRootDescriptor$element$delegate$lambda($config, $serializersModule, this$0) {
    return function () {
      return Companion_getInstance_9().from$default_x2803f_k$($config, $serializersModule, this$0.tagParent_1, VOID, false);
    };
  }
  function XmlRootDescriptor(config, serializersModule, descriptor, tagName, isDefaultNamespace) {
    XmlDescriptor.call(this, config.get_policy_i5q4hn_k$(), DetachedParent_init_$Create$(descriptor, tagName, true, null, isDefaultNamespace));
    var tmp = this;
    tmp.element$delegate_1 = lazy(XmlRootDescriptor$element$delegate$lambda(config, serializersModule, this));
  }
  protoOf(XmlRootDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return false;
  };
  protoOf(XmlRootDescriptor).get_doInline_tyxd0z_k$ = function () {
    return true;
  };
  protoOf(XmlRootDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return _get_element__z0t21h(this).get_preserveSpace_4xp4oh_k$();
  };
  protoOf(XmlRootDescriptor).get_tagName_ocsgis_k$ = function () {
    var useNameInfo = this.useNameInfo_1;
    return ensureNotNull(useNameInfo.get_annotatedName_g9piau_k$());
  };
  protoOf(XmlRootDescriptor).get_outputKind_tsa18e_k$ = function () {
    return OutputKind_Mixed_getInstance();
  };
  protoOf(XmlRootDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    if (!(index === 0))
      throw IndexOutOfBoundsException_init_$Create$('There is exactly one child to a root tag');
    return _get_element__z0t21h(this);
  };
  protoOf(XmlRootDescriptor).get_elementsCount_288r0x_k$ = function () {
    return 1;
  };
  protoOf(XmlRootDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlRootDescriptor.appendTo.<anonymous>' call
    builder.append_jgojdo_k$('<root>(');
    this.getElementDescriptor_ncda77_k$(0).appendTo_7dfmi4_k$(builder, indent + 4 | 0, seen);
    builder.append_jgojdo_k$(')');
  };
  protoOf(XmlRootDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlRootDescriptor))
      THROW_CCE();
    return _get_element__z0t21h(this).equals(_get_element__z0t21h(other));
  };
  protoOf(XmlRootDescriptor).hashCode = function () {
    var result = protoOf(XmlDescriptor).hashCode.call(this);
    result = imul(31, result) + _get_element__z0t21h(this).hashCode() | 0;
    return result;
  };
  function Companion_3() {
    Companion_instance_3 = this;
  }
  protoOf(Companion_3).from_btoh6i_k$ = function (config, serializersModule, serializerParent, tagParent, canBeAttribute) {
    var overridenSerializer = config.get_policy_i5q4hn_k$().overrideSerializerOrNull_kprih2_k$(serializerParent, tagParent);
    var elementSerialDescriptor;
    var effectiveSerializerParent;
    var effectiveTagParent;
    if (overridenSerializer == null) {
      elementSerialDescriptor = serializerParent.get_elementSerialDescriptor_gvznu_k$();
      effectiveSerializerParent = serializerParent;
      effectiveTagParent = tagParent;
    } else {
      elementSerialDescriptor = overridenSerializer.get_descriptor_wjt6a0_k$();
      effectiveSerializerParent = serializerParent.copy$default_aw1ypn_k$(VOID, VOID, overridenSerializer);
      effectiveTagParent = tagParent.copy$default_aw1ypn_k$(VOID, VOID, overridenSerializer);
    }
    var preserveSpace = config.get_policy_i5q4hn_k$().preserveSpace_5xgsvs_k$(serializerParent, tagParent);
    var tmp1_subject = elementSerialDescriptor.get_kind_wop7ml_k$();
    var tmp;
    if (equals(tmp1_subject, ENUM_getInstance())) {
      tmp = true;
    } else {
      tmp = tmp1_subject instanceof PrimitiveKind;
    }
    if (tmp)
      return new XmlPrimitiveDescriptor(config.get_policy_i5q4hn_k$(), effectiveSerializerParent, effectiveTagParent, canBeAttribute, preserveSpace);
    else {
      if (equals(tmp1_subject, LIST_getInstance()))
        return new XmlListDescriptor(config, serializersModule, effectiveSerializerParent, effectiveTagParent);
      else {
        if (equals(tmp1_subject, MAP_getInstance())) {
          var tmp2_subject = serializerParent.get_elementUseOutputKind_aak75j_k$();
          return (tmp2_subject == null ? -1 : tmp2_subject.get_ordinal_ip24qg_k$()) === 1 ? new XmlAttributeMapDescriptor(config, serializersModule, effectiveSerializerParent, effectiveTagParent) : new XmlMapDescriptor(config, serializersModule, effectiveSerializerParent, effectiveTagParent);
        } else {
          if (tmp1_subject instanceof PolymorphicKind)
            return new XmlPolymorphicDescriptor(config, serializersModule, effectiveSerializerParent, effectiveTagParent);
        }
      }
    }
    return (config.get_isInlineCollapsed_js96yd_k$() ? elementSerialDescriptor.get_isInline_usk17w_k$() : false) ? new XmlInlineDescriptor(config, serializersModule, effectiveSerializerParent, effectiveTagParent, canBeAttribute) : new XmlCompositeDescriptor(config, serializersModule, effectiveSerializerParent, effectiveTagParent, preserveSpace);
  };
  protoOf(Companion_3).from$default_x2803f_k$ = function (config, serializersModule, serializerParent, tagParent, canBeAttribute, $super) {
    tagParent = tagParent === VOID ? serializerParent : tagParent;
    return $super === VOID ? this.from_btoh6i_k$(config, serializersModule, serializerParent, tagParent, canBeAttribute) : $super.from_btoh6i_k$.call(this, config, serializersModule, serializerParent, tagParent, canBeAttribute);
  };
  var Companion_instance_3;
  function Companion_getInstance_9() {
    if (Companion_instance_3 == null)
      new Companion_3();
    return Companion_instance_3;
  }
  function XmlDescriptor$tagName$delegate$lambda($policy, $serializerParent, this$0) {
    return function () {
      return $policy.effectiveName_j2bo7w_k$($serializerParent, this$0.tagParent_1, this$0.get_outputKind_tsa18e_k$(), this$0.useNameInfo_1);
    };
  }
  function XmlDescriptor(policy, serializerParent, tagParent) {
    Companion_getInstance_9();
    tagParent = tagParent === VOID ? serializerParent : tagParent;
    this.tagParent_1 = tagParent;
    this.overriddenSerializer_1 = serializerParent.get_overriddenSerializer_2zhhv3_k$();
    this.useNameInfo_1 = serializerParent.get_elementUseNameInfo_t1hkkt_k$();
    this.typeDescriptor_1 = serializerParent.get_elementTypeDescriptor_rhs6d8_k$();
    this.namespaceDecls_1 = policy.elementNamespaceDecls_vmvalj_k$(serializerParent);
    var tmp = this;
    tmp.tagName$delegate_1 = lazy(XmlDescriptor$tagName$delegate$lambda(policy, serializerParent, this));
  }
  protoOf(XmlDescriptor).get_tagParent_zbggxx_k$ = function () {
    return this.tagParent_1;
  };
  protoOf(XmlDescriptor).get_effectiveOutputKind_uvd9nx_k$ = function () {
    return this.get_outputKind_tsa18e_k$().get_ordinal_ip24qg_k$() === 4 ? this.getElementDescriptor_ncda77_k$(0).get_effectiveOutputKind_uvd9nx_k$() : this.get_outputKind_tsa18e_k$();
  };
  protoOf(XmlDescriptor).get_overriddenSerializer_2zhhv3_k$ = function () {
    return this.overriddenSerializer_1;
  };
  protoOf(XmlDescriptor).get_useNameInfo_5igyy1_k$ = function () {
    return this.useNameInfo_1;
  };
  protoOf(XmlDescriptor).get_typeDescriptor_3nmlke_k$ = function () {
    return this.typeDescriptor_1;
  };
  protoOf(XmlDescriptor).get_isUnsigned_xk1s8o_k$ = function () {
    return false;
  };
  protoOf(XmlDescriptor).get_namespaceDecls_1u0o6v_k$ = function () {
    return this.namespaceDecls_1;
  };
  protoOf(XmlDescriptor).get_tagName_ocsgis_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.tagName$delegate_1;
    tagName$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(XmlDescriptor).effectiveSerializationStrategy_su7rny_k$ = function (fallback) {
    var tmp0_elvis_lhs = this.overriddenSerializer_1;
    var tmp = tmp0_elvis_lhs == null ? fallback : tmp0_elvis_lhs;
    return isInterface(tmp, SerializationStrategy) ? tmp : THROW_CCE();
  };
  protoOf(XmlDescriptor).effectiveDeserializationStrategy_ko8gvi_k$ = function (fallback) {
    var tmp0_elvis_lhs = this.overriddenSerializer_1;
    var tmp = tmp0_elvis_lhs == null ? fallback : tmp0_elvis_lhs;
    return isInterface(tmp, DeserializationStrategy) ? tmp : THROW_CCE();
  };
  protoOf(XmlDescriptor).get_serialDescriptor_vvwkac_k$ = function () {
    return this.get_typeDescriptor_3nmlke_k$().get_serialDescriptor_vvwkac_k$();
  };
  protoOf(XmlDescriptor).get_elementsCount_288r0x_k$ = function () {
    return this.get_typeDescriptor_3nmlke_k$().get_serialDescriptor_vvwkac_k$().get_elementsCount_288r0x_k$();
  };
  protoOf(XmlDescriptor).get_serialKind_u2thhr_k$ = function () {
    return this.get_typeDescriptor_3nmlke_k$().get_serialDescriptor_vvwkac_k$().get_kind_wop7ml_k$();
  };
  protoOf(XmlDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    throw IndexOutOfBoundsException_init_$Create$('There are no children');
  };
  protoOf(XmlDescriptor).toString_y6fjxq_k$ = function (builder, indent, seen) {
    var tmp;
    if (this instanceof XmlListDescriptor) {
      tmp = true;
    } else {
      tmp = this instanceof XmlPrimitiveDescriptor;
    }
    if (tmp) {
      this.appendTo_7dfmi4_k$(builder, indent, seen);
    } else {
      if (seen.contains_aljjnj_k$(this.get_serialDescriptor_vvwkac_k$().get_serialName_u2rqhk_k$())) {
        builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString()).append_jgojdo_k$('<...> = ').append_jgojdo_k$(this.get_outputKind_tsa18e_k$().get_name_woqyms_k$());
      } else {
        seen.add_utx5q5_k$(this.get_serialDescriptor_vvwkac_k$().get_serialName_u2rqhk_k$());
        this.appendTo_7dfmi4_k$(builder, indent, seen);
      }
    }
    return builder;
  };
  protoOf(XmlDescriptor).toString = function () {
    var tmp = StringBuilder_init_$Create$();
    // Inline function 'kotlin.collections.mutableSetOf' call
    var tmp$ret$0 = LinkedHashSet_init_$Create$();
    return this.toString_y6fjxq_k$(tmp, 0, tmp$ret$0).toString();
  };
  protoOf(XmlDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof XmlDescriptor))
      THROW_CCE();
    if (!equals(this.overriddenSerializer_1, other.overriddenSerializer_1))
      return false;
    if (!this.useNameInfo_1.equals(other.useNameInfo_1))
      return false;
    return this.get_typeDescriptor_3nmlke_k$().equals(other.get_typeDescriptor_3nmlke_k$());
  };
  protoOf(XmlDescriptor).hashCode = function () {
    var result = this.useNameInfo_1.hashCode();
    result = imul(31, result) + this.get_typeDescriptor_3nmlke_k$().hashCode() | 0;
    var tmp = imul(31, result);
    var tmp0_safe_receiver = this.overriddenSerializer_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    result = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    return result;
  };
  function _get_children__my42wc($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.children$delegate_1;
    children$factory();
    return this_0.get_value_j01efc_k$();
  }
  function XmlPolymorphicDescriptor$children$delegate$lambda(this$0, $config, $serializersModule) {
    return function () {
      // Inline function 'kotlin.collections.List' call
      // Inline function 'kotlin.collections.MutableList' call
      var size = this$0.get_elementsCount_288r0x_k$();
      var list = ArrayList_init_$Create$_0(size);
      // Inline function 'kotlin.repeat' call
      // Inline function 'kotlin.contracts.contract' call
      var inductionVariable = 0;
      if (inductionVariable < size)
        do {
          var index = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          // Inline function 'kotlin.collections.MutableList.<anonymous>' call
          // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlPolymorphicDescriptor.children$delegate.<anonymous>.<anonymous>' call
          var canBeAttribute = index === 0;
          var overrideOutputKind = canBeAttribute ? OutputKind_Attribute_getInstance() : OutputKind_Element_getInstance();
          var parent = new ParentInfo(this$0, index, VOID, overrideOutputKind);
          var tmp$ret$0 = Companion_getInstance_9().from$default_x2803f_k$($config, $serializersModule, parent, VOID, canBeAttribute);
          list.add_utx5q5_k$(tmp$ret$0);
        }
         while (inductionVariable < size);
      return list;
    };
  }
  function XmlPolymorphicDescriptor(config, serializersModule, serializerParent, tagParent) {
    XmlValueDescriptor.call(this, config.get_policy_i5q4hn_k$(), serializerParent, tagParent);
    this.outputKind_1 = config.get_policy_i5q4hn_k$().effectiveOutputKind_5fu2kr_k$(serializerParent, tagParent, false);
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlPolyChildren) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var xmlPolyChildren = tmp$ret$0;
    var polyAttrName = config.get_policy_i5q4hn_k$().polymorphicDiscriminatorName_x4ry6p_k$(serializerParent, tagParent);
    this.polymorphicMode_1 = config.get_policy_i5q4hn_k$().isTransparentPolymorphic_44l9f8_k$(serializerParent, tagParent) ? TRANSPARENT_getInstance() : polyAttrName == null ? TAG_getInstance() : new ATTR(polyAttrName);
    var tmp = this;
    // Inline function 'kotlin.also' call
    // Inline function 'kotlin.collections.mutableMapOf' call
    var this_0 = LinkedHashMap_init_$Create$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlPolymorphicDescriptor.<anonymous>' call
    var tmp0_subject = this.polymorphicMode_1;
    var tmp_0;
    if (equals(tmp0_subject, TRANSPARENT_getInstance())) {
      tmp_0 = null;
    } else {
      if (equals(tmp0_subject, TAG_getInstance())) {
        tmp_0 = Companion_getInstance_9().from$default_x2803f_k$(config, serializersModule, new ParentInfo(this, 1), VOID, false).get_tagName_ocsgis_k$();
      } else {
        if (tmp0_subject instanceof ATTR) {
          tmp_0 = this.get_tagName_ocsgis_k$();
        } else {
          noWhenBranchMatchedException();
        }
      }
    }
    var qName = tmp_0;
    if (!(xmlPolyChildren == null)) {
      var tmp1_safe_receiver = tagParent.get_descriptor_wjt6a0_k$();
      var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_serialDescriptor_vvwkac_k$();
      var tmp3_elvis_lhs = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_serialName_u2rqhk_k$();
      var tmp_1 = tmp3_elvis_lhs == null ? '' : tmp3_elvis_lhs;
      var tmp4_safe_receiver = tagParent.get_descriptor_wjt6a0_k$();
      var tmp5_elvis_lhs = tmp4_safe_receiver == null ? null : tmp4_safe_receiver.get_tagName_ocsgis_k$();
      var baseName = new ActualNameInfo(tmp_1, tmp5_elvis_lhs == null ? QName_init_$Create$_0('', '') : tmp5_elvis_lhs);
      var tmp6_elvis_lhs = get_capturedKClass(this.get_serialDescriptor_vvwkac_k$());
      var baseClass = tmp6_elvis_lhs == null ? PrimitiveClasses_getInstance().get_anyClass_x0jl4l_k$() : tmp6_elvis_lhs;
      var indexedObject = xmlPolyChildren.get_value_j01efc_k$();
      var inductionVariable = 0;
      var last = indexedObject.length;
      while (inductionVariable < last) {
        var polyChild = indexedObject[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        var childInfo = polyTagName(baseName, polyChild, baseClass, serializersModule);
        var childSerializerParent = DetachedParent_init_$Create$(childInfo.get_descriptor_wjt6a0_k$(), childInfo.get_tagName_ocsgis_k$(), false, VOID, false);
        // Inline function 'kotlin.collections.set' call
        var key = childInfo.get_describedName_8lk92z_k$();
        var value = Companion_getInstance_9().from_btoh6i_k$(config, serializersModule, childSerializerParent, tagParent, false);
        this_0.put_4fpzoq_k$(key, value);
      }
    } else if (equals(this.get_serialDescriptor_vvwkac_k$().get_kind_wop7ml_k$(), SEALED_getInstance())) {
      var d = this.get_serialDescriptor_vvwkac_k$().getElementDescriptor_ncda77_k$(1);
      var inductionVariable_0 = 0;
      var last_0 = d.get_elementsCount_288r0x_k$();
      if (inductionVariable_0 < last_0)
        do {
          var i = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          var childDesc = d.getElementDescriptor_ncda77_k$(i);
          var childSerializerParent_0 = DetachedParent_init_$Create$(childDesc, qName, false, VOID, false);
          // Inline function 'kotlin.collections.set' call
          var key_0 = childDesc.get_serialName_u2rqhk_k$();
          var value_0 = Companion_getInstance_9().from_btoh6i_k$(config, serializersModule, childSerializerParent_0, tagParent, false);
          this_0.put_4fpzoq_k$(key_0, value_0);
        }
         while (inductionVariable_0 < last_0);
    } else {
      var childDescriptors = getPolymorphicDescriptors(serializersModule, this.get_serialDescriptor_vvwkac_k$());
      var tmp9_iterator = childDescriptors.iterator_jk1svi_k$();
      while (tmp9_iterator.hasNext_bitz1p_k$()) {
        var childDesc_0 = tmp9_iterator.next_20eer_k$();
        var childSerializerParent_1 = DetachedParent_init_$Create$(childDesc_0, qName, false, this.outputKind_1, false);
        // Inline function 'kotlin.collections.set' call
        var key_1 = childDesc_0.get_serialName_u2rqhk_k$();
        var value_1 = Companion_getInstance_9().from_btoh6i_k$(config, serializersModule, childSerializerParent_1, tagParent, false);
        this_0.put_4fpzoq_k$(key_1, value_1);
      }
    }
    tmp.polyInfo_1 = this_0;
    var tmp_2 = this;
    var tmp0_safe_receiver = tagParent.get_descriptor_wjt6a0_k$();
    var tmp1_safe_receiver_0 = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_serialDescriptor_vvwkac_k$();
    var tmp3_elvis_lhs_0 = tmp1_safe_receiver_0 == null ? null : tmp1_safe_receiver_0.get_serialName_u2rqhk_k$();
    var tmp_3;
    if (tmp3_elvis_lhs_0 == null) {
      var tmp2_safe_receiver_0 = get_capturedKClass(this.get_serialDescriptor_vvwkac_k$());
      tmp_3 = tmp2_safe_receiver_0 == null ? null : get_serialName(tmp2_safe_receiver_0);
    } else {
      tmp_3 = tmp3_elvis_lhs_0;
    }
    tmp_2.parentSerialName_1 = tmp_3;
    var tmp_4 = this;
    tmp_4.children$delegate_1 = lazy(XmlPolymorphicDescriptor$children$delegate$lambda(this, config, serializersModule));
  }
  protoOf(XmlPolymorphicDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return false;
  };
  protoOf(XmlPolymorphicDescriptor).get_doInline_tyxd0z_k$ = function () {
    return false;
  };
  protoOf(XmlPolymorphicDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return false;
  };
  protoOf(XmlPolymorphicDescriptor).get_outputKind_tsa18e_k$ = function () {
    return this.outputKind_1;
  };
  protoOf(XmlPolymorphicDescriptor).get_polymorphicMode_4qzik0_k$ = function () {
    return this.polymorphicMode_1;
  };
  protoOf(XmlPolymorphicDescriptor).get_isTransparent_hy4yan_k$ = function () {
    return equals(this.polymorphicMode_1, TRANSPARENT_getInstance());
  };
  protoOf(XmlPolymorphicDescriptor).get_polyInfo_mizov1_k$ = function () {
    return this.polyInfo_1;
  };
  protoOf(XmlPolymorphicDescriptor).get_parentSerialName_a9taha_k$ = function () {
    return this.parentSerialName_1;
  };
  protoOf(XmlPolymorphicDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    return _get_children__my42wc(this).get_c1px32_k$(index);
  };
  protoOf(XmlPolymorphicDescriptor).getPolymorphicDescriptor_f2x8gl_k$ = function (typeName) {
    var tmp0_elvis_lhs = this.polyInfo_1.get_wei43m_k$(typeName);
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw new XmlSerialException('Missing polymorphic information for ' + typeName);
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  };
  protoOf(XmlPolymorphicDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlPolymorphicDescriptor.appendTo.<anonymous>' call
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString());
    if (this.get_isTransparent_hy4yan_k$()) {
      builder.append_jgojdo_k$(' <~(');
      var tmp0_iterator = this.polyInfo_1.get_values_ksazhn_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var polyVal = tmp0_iterator.next_20eer_k$();
        // Inline function 'kotlin.text.appendLine' call
        var this_0 = polyVal.toString_y6fjxq_k$(builder, indent + 4 | 0, seen);
        var value = _Char___init__impl__6a9atx(44);
        // Inline function 'kotlin.text.appendLine' call
        this_0.append_am5a4z_k$(value).append_am5a4z_k$(_Char___init__impl__6a9atx(10));
      }
    } else {
      builder.append_jgojdo_k$(' (');
      builder.append_jgojdo_k$(' <poly> [');
      var tmp1_iterator = this.polyInfo_1.get_values_ksazhn_k$().iterator_jk1svi_k$();
      while (tmp1_iterator.hasNext_bitz1p_k$()) {
        var polyVal_0 = tmp1_iterator.next_20eer_k$();
        // Inline function 'kotlin.text.appendLine' call
        var this_1 = polyVal_0.toString_y6fjxq_k$(builder, indent + 4 | 0, seen);
        var value_0 = _Char___init__impl__6a9atx(44);
        // Inline function 'kotlin.text.appendLine' call
        this_1.append_am5a4z_k$(value_0).append_am5a4z_k$(_Char___init__impl__6a9atx(10));
      }
      builder.append_am5a4z_k$(_Char___init__impl__6a9atx(93));
    }
  };
  protoOf(XmlPolymorphicDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlValueDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlPolymorphicDescriptor))
      THROW_CCE();
    if (!this.outputKind_1.equals(other.outputKind_1))
      return false;
    if (!equals(this.polymorphicMode_1, other.polymorphicMode_1))
      return false;
    if (!equals(this.polyInfo_1, other.polyInfo_1))
      return false;
    if (!(this.parentSerialName_1 == other.parentSerialName_1))
      return false;
    return true;
  };
  protoOf(XmlPolymorphicDescriptor).hashCode = function () {
    var result = protoOf(XmlValueDescriptor).hashCode.call(this);
    result = imul(31, result) + this.outputKind_1.hashCode() | 0;
    result = imul(31, result) + hashCode(this.polymorphicMode_1) | 0;
    result = imul(31, result) + hashCode(this.polyInfo_1) | 0;
    var tmp = imul(31, result);
    var tmp0_safe_receiver = this.parentSerialName_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : getStringHashCode(tmp0_safe_receiver);
    result = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    return result;
  };
  function _get_serialDescriptor__fmn44o($this) {
    return $this.serialDescriptor_1;
  }
  function DetachedParent_init_$Init$(serialDescriptor, useName, isDocumentRoot, outputKind, isDefaultNamespace, $this) {
    outputKind = outputKind === VOID ? null : outputKind;
    // Inline function 'kotlin.run' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.DetachedParent.<init>.<anonymous>' call
    var tmp0_safe_receiver = get_capturedKClass(serialDescriptor);
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : get_serialName(tmp0_safe_receiver);
    var tmp$ret$1 = tmp1_elvis_lhs == null ? serialDescriptor.get_serialName_u2rqhk_k$() : tmp1_elvis_lhs;
    DetachedParent.call($this, serialDescriptor, new DeclaredNameInfo(tmp$ret$1, useName, isDefaultNamespace), isDocumentRoot, outputKind);
    return $this;
  }
  function DetachedParent_init_$Create$(serialDescriptor, useName, isDocumentRoot, outputKind, isDefaultNamespace) {
    return DetachedParent_init_$Init$(serialDescriptor, useName, isDocumentRoot, outputKind, isDefaultNamespace, objectCreate(protoOf(DetachedParent)));
  }
  function DetachedParent_init_$Init$_0(serialDescriptor, isDocumentRoot, outputKind, $this) {
    outputKind = outputKind === VOID ? null : outputKind;
    // Inline function 'kotlin.run' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.DetachedParent.<init>.<anonymous>' call
    var tmp0_safe_receiver = get_capturedKClass(serialDescriptor);
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : get_serialName(tmp0_safe_receiver);
    var tmp$ret$1 = tmp1_elvis_lhs == null ? serialDescriptor.get_serialName_u2rqhk_k$() : tmp1_elvis_lhs;
    DetachedParent.call($this, serialDescriptor, new DeclaredNameInfo(tmp$ret$1, null, false), isDocumentRoot, outputKind);
    return $this;
  }
  function DetachedParent_init_$Create$_0(serialDescriptor, isDocumentRoot, outputKind) {
    return DetachedParent_init_$Init$_0(serialDescriptor, isDocumentRoot, outputKind, objectCreate(protoOf(DetachedParent)));
  }
  function DetachedParent(serialDescriptor, elementUseNameInfo, isDocumentRoot, outputKind, overriddenSerializer) {
    outputKind = outputKind === VOID ? null : outputKind;
    overriddenSerializer = overriddenSerializer === VOID ? null : overriddenSerializer;
    this.serialDescriptor_1 = serialDescriptor;
    this.elementUseNameInfo_1 = elementUseNameInfo;
    this.isDocumentRoot_1 = isDocumentRoot;
    this.overriddenSerializer_1 = overriddenSerializer;
    this.elementUseOutputKind_1 = outputKind;
  }
  protoOf(DetachedParent).get_elementUseNameInfo_t1hkkt_k$ = function () {
    return this.elementUseNameInfo_1;
  };
  protoOf(DetachedParent).get_isDocumentRoot_3lgcnk_k$ = function () {
    return this.isDocumentRoot_1;
  };
  protoOf(DetachedParent).get_overriddenSerializer_2zhhv3_k$ = function () {
    return this.overriddenSerializer_1;
  };
  protoOf(DetachedParent).copy_nllc1_k$ = function (useNameInfo, useOutputKind, overriddenSerializer) {
    return new DetachedParent(this.serialDescriptor_1, useNameInfo, this.isDocumentRoot_1, useOutputKind, overriddenSerializer);
  };
  protoOf(DetachedParent).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof DetachedParent))
      THROW_CCE();
    if (!equals(this.serialDescriptor_1, other.serialDescriptor_1))
      return false;
    if (!this.elementUseNameInfo_1.equals(other.elementUseNameInfo_1))
      return false;
    if (!(this.isDocumentRoot_1 === other.isDocumentRoot_1))
      return false;
    if (!equals(this.overriddenSerializer_1, other.overriddenSerializer_1))
      return false;
    if (!equals(this.elementUseOutputKind_1, other.elementUseOutputKind_1))
      return false;
    return true;
  };
  protoOf(DetachedParent).hashCode = function () {
    var result = hashCode(this.serialDescriptor_1);
    result = imul(31, result) + this.elementUseNameInfo_1.hashCode() | 0;
    result = imul(31, result) + getBooleanHashCode(this.isDocumentRoot_1) | 0;
    var tmp = imul(31, result);
    var tmp0_safe_receiver = this.overriddenSerializer_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    result = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    var tmp_0 = imul(31, result);
    var tmp2_safe_receiver = this.elementUseOutputKind_1;
    var tmp3_elvis_lhs = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.hashCode();
    result = tmp_0 + (tmp3_elvis_lhs == null ? 0 : tmp3_elvis_lhs) | 0;
    return result;
  };
  protoOf(DetachedParent).get_index_it478p_k$ = function () {
    return -1;
  };
  protoOf(DetachedParent).get_descriptor_wjt6a0_k$ = function () {
    return null;
  };
  protoOf(DetachedParent).get_parentIsInline_8sxqkq_k$ = function () {
    return this.serialDescriptor_1.get_isInline_usk17w_k$();
  };
  protoOf(DetachedParent).get_elementTypeDescriptor_rhs6d8_k$ = function () {
    var tmp0_safe_receiver = this.overriddenSerializer_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_descriptor_wjt6a0_k$();
    return new XmlTypeDescriptor(tmp1_elvis_lhs == null ? this.serialDescriptor_1 : tmp1_elvis_lhs, this.get_namespace_t826ya_k$());
  };
  protoOf(DetachedParent).get_elementUseAnnotations_y3m8sw_k$ = function () {
    return emptyList();
  };
  protoOf(DetachedParent).get_elementSerialDescriptor_gvznu_k$ = function () {
    var tmp0_safe_receiver = this.overriddenSerializer_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_descriptor_wjt6a0_k$();
    return tmp1_elvis_lhs == null ? this.serialDescriptor_1 : tmp1_elvis_lhs;
  };
  protoOf(DetachedParent).get_elementUseOutputKind_aak75j_k$ = function () {
    return this.elementUseOutputKind_1;
  };
  protoOf(DetachedParent).get_namespace_t826ya_k$ = function () {
    var tmp0_safe_receiver = this.elementUseNameInfo_1.get_annotatedName_g9piau_k$();
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : toNamespace(tmp0_safe_receiver);
    return tmp1_elvis_lhs == null ? new NamespaceImpl('', '') : tmp1_elvis_lhs;
  };
  function SafeParentInfo() {
  }
  function SafeXmlDescriptor() {
  }
  function _get_childDescriptor__xb3z96($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.childDescriptor$delegate_1;
    childDescriptor$factory();
    return this_0.get_value_j01efc_k$();
  }
  function XmlListDescriptor$childDescriptor$delegate$lambda($tagParent, this$0, $config, $serializersModule) {
    return function () {
      var tmp$ret$0;
      $l$block: {
        // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
        var tmp0_iterator = $tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
        while (tmp0_iterator.hasNext_bitz1p_k$()) {
          var e = tmp0_iterator.next_20eer_k$();
          if (e instanceof XmlChildrenName) {
            tmp$ret$0 = e;
            break $l$block;
          }
        }
        tmp$ret$0 = null;
      }
      var childrenNameAnnotation = tmp$ret$0;
      var tmp;
      if (!(childrenNameAnnotation == null)) {
        var tmp_0 = childrenNameAnnotation.get_value_j01efc_k$();
        var tmp_1 = toQName_0(childrenNameAnnotation);
        tmp = new DeclaredNameInfo(tmp_0, tmp_1, (childrenNameAnnotation == null ? null : childrenNameAnnotation.get_namespace_t826ya_k$()) === get_UNSET_ANNOTATION_VALUE());
      } else if (!this$0.get_isListEluded_vahr8a_k$()) {
        tmp = null;
      } else {
        tmp = $tagParent.get_elementUseNameInfo_t1hkkt_k$();
      }
      var useNameInfo = tmp;
      return Companion_getInstance_9().from_btoh6i_k$($config, $serializersModule, new ParentInfo(this$0, 0, useNameInfo, this$0.outputKind_1), $tagParent, false);
    };
  }
  function XmlListDescriptor(config, serializersModule, serializerParent, tagParent) {
    tagParent = tagParent === VOID ? serializerParent : tagParent;
    XmlListLikeDescriptor.call(this, config, serializerParent, tagParent);
    var tmp = this;
    var tmp_0;
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlElement) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var tmp0_safe_receiver = tmp$ret$0;
    if ((tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_value_j01efc_k$()) === false) {
      tmp_0 = OutputKind_Attribute_getInstance();
    } else {
      var tmp$ret$1;
      $l$block_0: {
        // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
        var tmp0_iterator_0 = tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
        while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
          var e_0 = tmp0_iterator_0.next_20eer_k$();
          if (e_0 instanceof XmlId) {
            tmp$ret$1 = e_0;
            break $l$block_0;
          }
        }
        tmp$ret$1 = null;
      }
      if (!(tmp$ret$1 == null)) {
        tmp_0 = OutputKind_Attribute_getInstance();
      } else {
        if (!this.get_isListEluded_vahr8a_k$()) {
          tmp_0 = OutputKind_Element_getInstance();
        } else {
          var tmp_1;
          var tmp$ret$2;
          $l$block_1: {
            // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
            var tmp0_iterator_1 = tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
            while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
              var e_1 = tmp0_iterator_1.next_20eer_k$();
              if (e_1 instanceof XmlValue) {
                tmp$ret$2 = e_1;
                break $l$block_1;
              }
            }
            tmp$ret$2 = null;
          }
          if (!(tmp$ret$2 == null)) {
            tmp_1 = config.get_policy_i5q4hn_k$().isTransparentPolymorphic_44l9f8_k$(DetachedParent_init_$Create$_0(this.get_serialDescriptor_vvwkac_k$().getElementDescriptor_ncda77_k$(0), false), tagParent);
          } else {
            tmp_1 = false;
          }
          if (tmp_1) {
            tmp_0 = OutputKind_Mixed_getInstance();
          } else {
            tmp_0 = OutputKind_Element_getInstance();
          }
        }
      }
    }
    tmp.outputKind_1 = tmp_0;
    var tmp_2 = this;
    var tmp_3;
    if (this.outputKind_1.get_ordinal_ip24qg_k$() === 1) {
      tmp_3 = config.get_policy_i5q4hn_k$().attributeListDelimiters_mtw9o_k$(new ParentInfo(this, 0, this.useNameInfo_1, this.outputKind_1), tagParent);
    } else {
      // Inline function 'kotlin.emptyArray' call
      tmp_3 = [];
    }
    tmp_2.delimiters_1 = tmp_3;
    var tmp_4 = this;
    tmp_4.childDescriptor$delegate_1 = lazy(XmlListDescriptor$childDescriptor$delegate$lambda(tagParent, this, config, serializersModule));
  }
  protoOf(XmlListDescriptor).get_outputKind_tsa18e_k$ = function () {
    return this.outputKind_1;
  };
  protoOf(XmlListDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return false;
  };
  protoOf(XmlListDescriptor).get_delimiters_6jqjhn_k$ = function () {
    return this.delimiters_1;
  };
  protoOf(XmlListDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    return _get_childDescriptor__xb3z96(this);
  };
  protoOf(XmlListDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlListDescriptor.appendTo.<anonymous>' call
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString());
    if (this.get_isListEluded_vahr8a_k$()) {
      builder.append_jgojdo_k$(': EludedList<');
      _get_childDescriptor__xb3z96(this).toString_y6fjxq_k$(builder, indent, seen);
      builder.append_am5a4z_k$(_Char___init__impl__6a9atx(62));
    } else {
      builder.append_jgojdo_k$(': ExplicitList<');
      _get_childDescriptor__xb3z96(this).toString_y6fjxq_k$(builder, indent, seen);
      builder.append_am5a4z_k$(_Char___init__impl__6a9atx(62));
    }
  };
  protoOf(XmlListDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlListLikeDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlListDescriptor))
      THROW_CCE();
    if (!(this.get_isListEluded_vahr8a_k$() === other.get_isListEluded_vahr8a_k$()))
      return false;
    if (!this.outputKind_1.equals(other.outputKind_1))
      return false;
    return _get_childDescriptor__xb3z96(this).equals(_get_childDescriptor__xb3z96(other));
  };
  protoOf(XmlListDescriptor).hashCode = function () {
    var result = protoOf(XmlListLikeDescriptor).hashCode.call(this);
    result = imul(31, result) + getBooleanHashCode(this.get_isListEluded_vahr8a_k$()) | 0;
    result = imul(31, result) + this.outputKind_1.hashCode() | 0;
    result = imul(31, result) + _get_childDescriptor__xb3z96(this).hashCode() | 0;
    return result;
  };
  function XmlPrimitiveDescriptor(policy, serializerParent, tagParent, canBeAttribute, preserveSpace) {
    XmlValueDescriptor.call(this, policy, serializerParent, tagParent);
    this.preserveSpace_1 = preserveSpace;
    var tmp = this;
    var tmp$ret$0;
    $l$block_0: {
      // Inline function 'kotlin.collections.any' call
      var this_0 = serializerParent.get_elementUseAnnotations_y3m8sw_k$();
      var tmp_0;
      if (isInterface(this_0, Collection)) {
        tmp_0 = this_0.isEmpty_y1axqb_k$();
      } else {
        tmp_0 = false;
      }
      if (tmp_0) {
        tmp$ret$0 = false;
        break $l$block_0;
      }
      var tmp0_iterator = this_0.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlPrimitiveDescriptor.<anonymous>' call
        if (element instanceof XmlId) {
          tmp$ret$0 = true;
          break $l$block_0;
        }
      }
      tmp$ret$0 = false;
    }
    tmp.isIdAttr_1 = tmp$ret$0;
    this.outputKind_1 = policy.effectiveOutputKind_5fu2kr_k$(serializerParent, tagParent, canBeAttribute);
  }
  protoOf(XmlPrimitiveDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return this.preserveSpace_1;
  };
  protoOf(XmlPrimitiveDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return this.isIdAttr_1;
  };
  protoOf(XmlPrimitiveDescriptor).get_doInline_tyxd0z_k$ = function () {
    return false;
  };
  protoOf(XmlPrimitiveDescriptor).get_outputKind_tsa18e_k$ = function () {
    return this.outputKind_1;
  };
  protoOf(XmlPrimitiveDescriptor).get_elementsCount_288r0x_k$ = function () {
    return 0;
  };
  protoOf(XmlPrimitiveDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString()).append_am5a4z_k$(_Char___init__impl__6a9atx(58)).append_jgojdo_k$(this.get_kind_wop7ml_k$().toString()).append_jgojdo_k$(' = ').append_jgojdo_k$(this.outputKind_1.toString());
  };
  protoOf(XmlPrimitiveDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlValueDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlPrimitiveDescriptor))
      THROW_CCE();
    return this.outputKind_1.equals(other.outputKind_1);
  };
  protoOf(XmlPrimitiveDescriptor).hashCode = function () {
    var result = protoOf(XmlValueDescriptor).hashCode.call(this);
    result = imul(31, result) + this.outputKind_1.hashCode() | 0;
    return result;
  };
  function XmlAttributeMapDescriptor$keyDescriptor$delegate$lambda($config, $serializersModule, this$0, $tagParent) {
    return function () {
      return Companion_getInstance_9().from_btoh6i_k$($config, $serializersModule, new ParentInfo(this$0, 0, VOID, OutputKind_Text_getInstance()), $tagParent, true);
    };
  }
  function XmlAttributeMapDescriptor$valueDescriptor$delegate$lambda($config, $serializersModule, this$0, $tagParent) {
    return function () {
      return Companion_getInstance_9().from_btoh6i_k$($config, $serializersModule, new ParentInfo(this$0, 1, VOID, OutputKind_Text_getInstance()), $tagParent, true);
    };
  }
  function XmlAttributeMapDescriptor(config, serializersModule, serializerParent, tagParent) {
    XmlValueDescriptor.call(this, config.get_policy_i5q4hn_k$(), serializerParent, tagParent);
    var tmp = this;
    tmp.keyDescriptor$delegate_1 = lazy(XmlAttributeMapDescriptor$keyDescriptor$delegate$lambda(config, serializersModule, this, tagParent));
    var tmp_0 = this;
    tmp_0.valueDescriptor$delegate_1 = lazy(XmlAttributeMapDescriptor$valueDescriptor$delegate$lambda(config, serializersModule, this, tagParent));
  }
  protoOf(XmlAttributeMapDescriptor).get_doInline_tyxd0z_k$ = function () {
    return false;
  };
  protoOf(XmlAttributeMapDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return false;
  };
  protoOf(XmlAttributeMapDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return true;
  };
  protoOf(XmlAttributeMapDescriptor).get_outputKind_tsa18e_k$ = function () {
    return OutputKind_Attribute_getInstance();
  };
  protoOf(XmlAttributeMapDescriptor).get_keyDescriptor_qkqayt_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.keyDescriptor$delegate_1;
    keyDescriptor$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(XmlAttributeMapDescriptor).get_valueDescriptor_j2bi95_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.valueDescriptor$delegate_1;
    valueDescriptor$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(XmlAttributeMapDescriptor).get_elementsCount_288r0x_k$ = function () {
    return 2;
  };
  protoOf(XmlAttributeMapDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    return (index % 2 | 0) === 0 ? this.get_keyDescriptor_qkqayt_k$() : this.get_valueDescriptor_j2bi95_k$();
  };
  protoOf(XmlAttributeMapDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlAttributeMapDescriptor.appendTo.<anonymous>' call
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString()).append_jgojdo_k$(' (').append_am5a4z_k$(_Char___init__impl__6a9atx(10));
    appendIndent(builder, indent);
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    this.get_keyDescriptor_qkqayt_k$().toString_y6fjxq_k$(builder, indent + 4 | 0, seen).append_jgojdo_k$(',').append_am5a4z_k$(_Char___init__impl__6a9atx(10));
    appendIndent(builder, indent);
    this.get_valueDescriptor_j2bi95_k$().toString_y6fjxq_k$(builder, indent + 4 | 0, seen).append_am5a4z_k$(_Char___init__impl__6a9atx(41));
  };
  function _get_keyDescriptor__hu7alf($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.keyDescriptor$delegate_1;
    keyDescriptor$factory_0();
    return this_0.get_value_j01efc_k$();
  }
  function _get_valueDescriptor__8ouq3z($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.valueDescriptor$delegate_1;
    valueDescriptor$factory_0();
    return this_0.get_value_j01efc_k$();
  }
  function XmlMapDescriptor$isValueCollapsed$delegate$lambda($config, $serializerParent, this$0) {
    return function () {
      return $config.get_policy_i5q4hn_k$().isMapValueCollapsed_loa0df_k$($serializerParent, _get_valueDescriptor__8ouq3z(this$0));
    };
  }
  function XmlMapDescriptor$entryName$delegate$lambda(this$0, $config, $serializerParent) {
    return function () {
      var tmp;
      if (this$0.get_isValueCollapsed_3vm2k9_k$()) {
        tmp = _get_valueDescriptor__8ouq3z(this$0).get_tagName_ocsgis_k$();
      } else {
        tmp = $config.get_policy_i5q4hn_k$().mapEntryName_7d78fp_k$($serializerParent, this$0.get_isListEluded_vahr8a_k$());
      }
      return tmp;
    };
  }
  function XmlMapDescriptor$keyDescriptor$delegate$lambda($config, $serializerParent, this$0, $tagParent, $serializersModule) {
    return function () {
      var keyNameInfo = $config.get_policy_i5q4hn_k$().mapKeyName_yvf7mr_k$($serializerParent);
      var parentInfo = new ParentInfo(this$0, 0, keyNameInfo);
      var keyTagParent = new InjectedParentTag(0, this$0.get_typeDescriptor_3nmlke_k$().get_c1px32_k$(0), keyNameInfo, $tagParent.get_namespace_t826ya_k$());
      return Companion_getInstance_9().from_btoh6i_k$($config, $serializersModule, parentInfo, keyTagParent, true);
    };
  }
  function XmlMapDescriptor$valueDescriptor$delegate$lambda($config, $serializerParent, this$0, $tagParent, $serializersModule) {
    return function () {
      var valueNameInfo = $config.get_policy_i5q4hn_k$().mapValueName_j12zti_k$($serializerParent, this$0.get_isListEluded_vahr8a_k$());
      var parentInfo = new ParentInfo(this$0, 1, valueNameInfo, OutputKind_Element_getInstance());
      var valueTagParent = new InjectedParentTag(0, this$0.get_typeDescriptor_3nmlke_k$().get_c1px32_k$(1), valueNameInfo, $tagParent.get_namespace_t826ya_k$());
      return Companion_getInstance_9().from_btoh6i_k$($config, $serializersModule, parentInfo, valueTagParent, true);
    };
  }
  function XmlMapDescriptor(config, serializersModule, serializerParent, tagParent) {
    tagParent = tagParent === VOID ? serializerParent : tagParent;
    XmlListLikeDescriptor.call(this, config, serializerParent, tagParent);
    var tmp = this;
    tmp.isValueCollapsed$delegate_1 = lazy(XmlMapDescriptor$isValueCollapsed$delegate$lambda(config, serializerParent, this));
    var tmp_0 = this;
    tmp_0.entryName$delegate_1 = lazy(XmlMapDescriptor$entryName$delegate$lambda(this, config, serializerParent));
    var tmp_1 = this;
    tmp_1.keyDescriptor$delegate_1 = lazy(XmlMapDescriptor$keyDescriptor$delegate$lambda(config, serializerParent, this, tagParent, serializersModule));
    var tmp_2 = this;
    tmp_2.valueDescriptor$delegate_1 = lazy(XmlMapDescriptor$valueDescriptor$delegate$lambda(config, serializerParent, this, tagParent, serializersModule));
  }
  protoOf(XmlMapDescriptor).get_outputKind_tsa18e_k$ = function () {
    return OutputKind_Element_getInstance();
  };
  protoOf(XmlMapDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return false;
  };
  protoOf(XmlMapDescriptor).get_isValueCollapsed_3vm2k9_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.isValueCollapsed$delegate_1;
    isValueCollapsed$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(XmlMapDescriptor).get_entryName_l031w_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.entryName$delegate_1;
    entryName$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(XmlMapDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    return (index % 2 | 0) === 0 ? _get_keyDescriptor__hu7alf(this) : _get_valueDescriptor__8ouq3z(this);
  };
  protoOf(XmlMapDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString()).append_jgojdo_k$(this.get_isListEluded_vahr8a_k$() ? ': TransparentMap<' : ': ExplicitMap<');
    this.getElementDescriptor_ncda77_k$(0).appendTo_7dfmi4_k$(builder, indent + 4 | 0, seen);
    builder.append_jgojdo_k$(', ');
    this.getElementDescriptor_ncda77_k$(1).appendTo_7dfmi4_k$(builder, indent + 4 | 0, seen);
    builder.append_am5a4z_k$(_Char___init__impl__6a9atx(62));
  };
  function _get_child__j05w3v($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.child$delegate_1;
    child$factory();
    return this_0.get_value_j01efc_k$();
  }
  function Companion_4() {
    Companion_instance_4 = this;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.UNSIGNED_SERIALIZER_DESCRIPTORS_1 = [serializer_1(Companion_getInstance_1()).get_descriptor_wjt6a0_k$(), serializer_2(Companion_getInstance_2()).get_descriptor_wjt6a0_k$(), serializer_3(Companion_getInstance_3()).get_descriptor_wjt6a0_k$(), serializer_4(Companion_getInstance_4()).get_descriptor_wjt6a0_k$()];
  }
  protoOf(Companion_4).get_UNSIGNED_SERIALIZER_DESCRIPTORS_mjfaa0_k$ = function () {
    return this.UNSIGNED_SERIALIZER_DESCRIPTORS_1;
  };
  var Companion_instance_4;
  function Companion_getInstance_10() {
    if (Companion_instance_4 == null)
      new Companion_4();
    return Companion_instance_4;
  }
  function XmlInlineDescriptor$child$delegate$lambda(this$0, $tagParent, $config, $serializersModule, $canBeAttribute) {
    return function () {
      var tmp;
      if (!(this$0.useNameInfo_1.get_annotatedName_g9piau_k$() == null)) {
        tmp = this$0.useNameInfo_1;
      } else if (!(this$0.get_typeDescriptor_3nmlke_k$().get_typeNameInfo_ievmo4_k$().get_annotatedName_g9piau_k$() == null)) {
        tmp = this$0.get_typeDescriptor_3nmlke_k$().get_typeNameInfo_ievmo4_k$();
      } else {
        var serialName = this$0.get_typeDescriptor_3nmlke_k$().get_serialDescriptor_vvwkac_k$().getElementName_u4sqmf_k$(0);
        var tmp$ret$0;
        $l$block: {
          // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
          var tmp0_iterator = this$0.get_typeDescriptor_3nmlke_k$().get_serialDescriptor_vvwkac_k$().getElementAnnotations_omrjs6_k$(0).iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var e = tmp0_iterator.next_20eer_k$();
            if (e instanceof XmlSerialName) {
              tmp$ret$0 = e;
              break $l$block;
            }
          }
          tmp$ret$0 = null;
        }
        var annotation = tmp$ret$0;
        var qName = annotation == null ? null : toQName(annotation, serialName, $tagParent.get_namespace_t826ya_k$());
        var childUseNameInfo = new DeclaredNameInfo(serialName, qName, (annotation == null ? null : annotation.get_namespace_t826ya_k$()) === get_UNSET_ANNOTATION_VALUE());
        tmp = !(childUseNameInfo.get_annotatedName_g9piau_k$() == null) ? childUseNameInfo : this$0.useNameInfo_1;
      }
      var effectiveUseNameInfo = tmp;
      var useParentInfo = new ParentInfo(this$0, 0, effectiveUseNameInfo);
      return Companion_getInstance_9().from_btoh6i_k$($config, $serializersModule, useParentInfo, $tagParent, $canBeAttribute);
    };
  }
  function XmlInlineDescriptor$isUnsigned$delegate$lambda(this$0) {
    return function () {
      return contains(Companion_getInstance_10().UNSIGNED_SERIALIZER_DESCRIPTORS_1, this$0.get_serialDescriptor_vvwkac_k$()) ? true : _get_child__j05w3v(this$0).get_isUnsigned_xk1s8o_k$();
    };
  }
  function XmlInlineDescriptor(config, serializersModule, serializerParent, tagParent, canBeAttribute) {
    Companion_getInstance_10();
    XmlValueDescriptor.call(this, config.get_policy_i5q4hn_k$(), serializerParent, tagParent);
    var tmp = this;
    var tmp$ret$0;
    $l$block_0: {
      // Inline function 'kotlin.collections.any' call
      var this_0 = serializerParent.get_elementUseAnnotations_y3m8sw_k$();
      var tmp_0;
      if (isInterface(this_0, Collection)) {
        tmp_0 = this_0.isEmpty_y1axqb_k$();
      } else {
        tmp_0 = false;
      }
      if (tmp_0) {
        tmp$ret$0 = false;
        break $l$block_0;
      }
      var tmp0_iterator = this_0.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var element = tmp0_iterator.next_20eer_k$();
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlInlineDescriptor.isIdAttr.<anonymous>' call
        if (element instanceof XmlId) {
          tmp$ret$0 = true;
          break $l$block_0;
        }
      }
      tmp$ret$0 = false;
    }
    tmp.isIdAttr_1 = tmp$ret$0;
    if (!serializerParent.get_elementSerialDescriptor_gvznu_k$().get_isInline_usk17w_k$()) {
      throw AssertionError_init_$Create$('InlineDescriptors are only valid for inline classes');
    }
    var tmp_1 = this;
    tmp_1.child$delegate_1 = lazy(XmlInlineDescriptor$child$delegate$lambda(this, tagParent, config, serializersModule, canBeAttribute));
    var tmp_2 = this;
    tmp_2.isUnsigned$delegate_1 = lazy(XmlInlineDescriptor$isUnsigned$delegate$lambda(this));
  }
  protoOf(XmlInlineDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return this.isIdAttr_1;
  };
  protoOf(XmlInlineDescriptor).get_doInline_tyxd0z_k$ = function () {
    return true;
  };
  protoOf(XmlInlineDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return _get_child__j05w3v(this).get_preserveSpace_4xp4oh_k$();
  };
  protoOf(XmlInlineDescriptor).get_outputKind_tsa18e_k$ = function () {
    return _get_child__j05w3v(this).get_outputKind_tsa18e_k$();
  };
  protoOf(XmlInlineDescriptor).get_tagName_ocsgis_k$ = function () {
    return _get_child__j05w3v(this).get_tagName_ocsgis_k$();
  };
  protoOf(XmlInlineDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    if (!(index === 0))
      throw IllegalArgumentException_init_$Create$('Inline classes only have one child');
    return _get_child__j05w3v(this);
  };
  protoOf(XmlInlineDescriptor).get_isUnsigned_xk1s8o_k$ = function () {
    // Inline function 'kotlin.getValue' call
    var this_0 = this.isUnsigned$delegate_1;
    isUnsigned$factory();
    return this_0.get_value_j01efc_k$();
  };
  protoOf(XmlInlineDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlInlineDescriptor.appendTo.<anonymous>' call
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString());
    builder.append_jgojdo_k$(': Inline (');
    _get_child__j05w3v(this).toString_y6fjxq_k$(builder, indent + 4 | 0, seen);
    builder.append_am5a4z_k$(_Char___init__impl__6a9atx(41));
  };
  protoOf(XmlInlineDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlValueDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlInlineDescriptor))
      THROW_CCE();
    return this.get_isUnsigned_xk1s8o_k$() === other.get_isUnsigned_xk1s8o_k$();
  };
  protoOf(XmlInlineDescriptor).hashCode = function () {
    var result = protoOf(XmlValueDescriptor).hashCode.call(this);
    result = imul(31, result) + getBooleanHashCode(this.get_isUnsigned_xk1s8o_k$()) | 0;
    return result;
  };
  function _get_initialChildReorderInfo__m8w7gg($this) {
    return $this.initialChildReorderInfo_1;
  }
  function _get_children__my42wc_0($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.children$delegate_1;
    children$factory_0();
    return this_0.get_value_j01efc_k$();
  }
  function getElementDescriptors($this, config, serializersModule, initialChildReorderInfo) {
    // Inline function 'kotlin.arrayOfNulls' call
    var size = $this.get_elementsCount_288r0x_k$();
    var descriptors = fillArrayVal(Array(size), null);
    var tmp0_iterator = sequenceStarts(initialChildReorderInfo, $this.get_elementsCount_288r0x_k$()).iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var orderedSequence = tmp0_iterator.next_20eer_k$();
      var tmp1_iterator = flatten(orderedSequence).iterator_jk1svi_k$();
      while (tmp1_iterator.hasNext_bitz1p_k$()) {
        var element = tmp1_iterator.next_20eer_k$();
        getElementDescriptors$ensureDescriptor(element, descriptors, $this, config, serializersModule);
      }
    }
    return toList_1(requireNoNulls(descriptors));
  }
  function createElementDescriptor($this, config, serializersModule, index, canBeAttribute) {
    return Companion_getInstance_9().from$default_x2803f_k$(config, serializersModule, new ParentInfo($this, index), VOID, canBeAttribute);
  }
  function _get_childReorderInfo__htyspq($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.childReorderInfo$delegate_1;
    childReorderInfo$factory();
    return this_0.get_value_j01efc_k$();
  }
  function getElementDescriptors$ensureDescriptor(_this__u8e3s4, descriptors, this$0, $config, $serializersModule) {
    var tmp0_elvis_lhs = descriptors[_this__u8e3s4.get_elementIdx_and5qu_k$()];
    var tmp;
    if (tmp0_elvis_lhs == null) {
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.getElementDescriptors.ensureDescriptor.<anonymous>' call
      var tmp_0;
      if (_this__u8e3s4.get_predecessors_c1lbyr_k$().isEmpty_y1axqb_k$()) {
        tmp_0 = true;
      } else {
        var tmp$ret$0;
        $l$block_0: {
          // Inline function 'kotlin.collections.all' call
          var this_0 = _this__u8e3s4.get_predecessors_c1lbyr_k$();
          var tmp_1;
          if (isInterface(this_0, Collection)) {
            tmp_1 = this_0.isEmpty_y1axqb_k$();
          } else {
            tmp_1 = false;
          }
          if (tmp_1) {
            tmp$ret$0 = true;
            break $l$block_0;
          }
          var tmp0_iterator = this_0.iterator_jk1svi_k$();
          while (tmp0_iterator.hasNext_bitz1p_k$()) {
            var element = tmp0_iterator.next_20eer_k$();
            // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.getElementDescriptors.ensureDescriptor.<anonymous>.<anonymous>' call
            if (!getElementDescriptors$ensureDescriptor(element, descriptors, this$0, $config, $serializersModule).get_outputKind_tsa18e_k$().equals(OutputKind_Attribute_getInstance())) {
              tmp$ret$0 = false;
              break $l$block_0;
            }
          }
          tmp$ret$0 = true;
        }
        tmp_0 = tmp$ret$0;
      }
      var canBeAttribute = tmp_0;
      // Inline function 'kotlin.also' call
      var this_1 = createElementDescriptor(this$0, $config, $serializersModule, _this__u8e3s4.get_elementIdx_and5qu_k$(), canBeAttribute);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.getElementDescriptors.ensureDescriptor.<anonymous>.<anonymous>' call
      descriptors[_this__u8e3s4.get_elementIdx_and5qu_k$()] = this_1;
      tmp = this_1;
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function XmlCompositeDescriptor$children$delegate$lambda(this$0, $config, $serializersModule) {
    return function () {
      var valueChildIndex = getValueChild(this$0);
      var tmp;
      if (!(this$0.initialChildReorderInfo_1 == null)) {
        tmp = getElementDescriptors(this$0, $config, $serializersModule, this$0.initialChildReorderInfo_1);
      } else {
        // Inline function 'kotlin.collections.List' call
        // Inline function 'kotlin.collections.MutableList' call
        var size = this$0.get_elementsCount_288r0x_k$();
        var list = ArrayList_init_$Create$_0(size);
        // Inline function 'kotlin.repeat' call
        // Inline function 'kotlin.contracts.contract' call
        var inductionVariable = 0;
        if (inductionVariable < size)
          do {
            var index = inductionVariable;
            inductionVariable = inductionVariable + 1 | 0;
            // Inline function 'kotlin.collections.MutableList.<anonymous>' call
            // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.children$delegate.<anonymous>.<anonymous>' call
            var tmp$ret$0 = createElementDescriptor(this$0, $config, $serializersModule, index, true);
            list.add_utx5q5_k$(tmp$ret$0);
          }
           while (inductionVariable < size);
        tmp = list;
      }
      var l = tmp;
      var tmp_0;
      if (valueChildIndex >= 0) {
        var valueChild = l.get_c1px32_k$(valueChildIndex);
        var tmp_1;
        if (!equals(valueChild.get_serialKind_u2thhr_k$(), LIST_getInstance()) ? true : !equals(valueChild.getElementDescriptor_ncda77_k$(0).get_serialDescriptor_vvwkac_k$(), CompactFragmentSerializer_getInstance().get_descriptor_wjt6a0_k$())) {
          var tmp$ret$4;
          $l$block: {
            // Inline function 'kotlin.collections.firstOrNull' call
            var tmp0_iterator = get_indices_0(l).iterator_jk1svi_k$();
            while (tmp0_iterator.hasNext_bitz1p_k$()) {
              var element = tmp0_iterator.next_20eer_k$();
              // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.children$delegate.<anonymous>.<anonymous>' call
              if (!(element === valueChildIndex) ? l.get_c1px32_k$(element).get_outputKind_tsa18e_k$().equals(OutputKind_Element_getInstance()) : false) {
                tmp$ret$4 = element;
                break $l$block;
              }
            }
            tmp$ret$4 = null;
          }
          var invalidIdx = tmp$ret$4;
          var tmp_2;
          if (!(invalidIdx == null)) {
            throw new XmlSerialException('Types with an @XmlValue member may not contain other child elements (' + this$0.get_serialDescriptor_vvwkac_k$().getElementDescriptor_ncda77_k$(invalidIdx));
          }
          tmp_1 = tmp_2;
        }
        tmp_0 = tmp_1;
      }
      return l;
    };
  }
  function XmlCompositeDescriptor$childReorderInfo$delegate$lambda(this$0) {
    return function () {
      var tmp0_safe_receiver = this$0.initialChildReorderInfo_1;
      var tmp;
      if (tmp0_safe_receiver == null) {
        tmp = null;
      } else {
        // Inline function 'kotlin.let' call
        // Inline function 'kotlin.contracts.contract' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.childReorderInfo$delegate.<anonymous>.<anonymous>' call
        var newList = sequenceStarts(tmp0_safe_receiver, this$0.get_elementsCount_288r0x_k$());
        tmp = fullFlatten(newList, this$0.get_serialDescriptor_vvwkac_k$(), _get_children__my42wc_0(this$0));
      }
      return tmp;
    };
  }
  function XmlCompositeDescriptor(config, serializersModule, serializerParent, tagParent, preserveSpace) {
    XmlValueDescriptor.call(this, config.get_policy_i5q4hn_k$(), serializerParent, tagParent);
    this.preserveSpace_1 = preserveSpace;
    var requestedOutputKind = config.get_policy_i5q4hn_k$().effectiveOutputKind_5fu2kr_k$(serializerParent, tagParent, false);
    if (!requestedOutputKind.equals(OutputKind_Element_getInstance())) {
      config.get_policy_i5q4hn_k$().invalidOutputKind_bwpkf2_k$('Class SerialKinds/composites can only have Element output kinds, not ' + requestedOutputKind);
    }
    this.initialChildReorderInfo_1 = config.get_policy_i5q4hn_k$().initialChildReorderMap_qu5t4o_k$(this.get_serialDescriptor_vvwkac_k$());
    var tmp = this;
    tmp.children$delegate_1 = lazy(XmlCompositeDescriptor$children$delegate$lambda(this, config, serializersModule));
    var tmp_0 = this;
    tmp_0.childReorderInfo$delegate_1 = lazy(XmlCompositeDescriptor$childReorderInfo$delegate$lambda(this));
  }
  protoOf(XmlCompositeDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return this.preserveSpace_1;
  };
  protoOf(XmlCompositeDescriptor).get_isIdAttr_umav5r_k$ = function () {
    return false;
  };
  protoOf(XmlCompositeDescriptor).get_doInline_tyxd0z_k$ = function () {
    return false;
  };
  protoOf(XmlCompositeDescriptor).get_outputKind_tsa18e_k$ = function () {
    return OutputKind_Element_getInstance();
  };
  protoOf(XmlCompositeDescriptor).getElementDescriptor_ncda77_k$ = function (index) {
    return _get_children__my42wc_0(this).get_c1px32_k$(index);
  };
  protoOf(XmlCompositeDescriptor).get_childReorderMap_nnsi44_k$ = function () {
    var tmp0_safe_receiver = _get_childReorderInfo__htyspq(this);
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_second_jf7fjx_k$();
  };
  protoOf(XmlCompositeDescriptor).get_childConstraints_pm066b_k$ = function () {
    var tmp0_safe_receiver = _get_childReorderInfo__htyspq(this);
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_first_irdx8n_k$();
  };
  protoOf(XmlCompositeDescriptor).appendTo_7dfmi4_k$ = function (builder, indent, seen) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlCompositeDescriptor.appendTo.<anonymous>' call
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    builder.append_jgojdo_k$(this.get_tagName_ocsgis_k$().toString()).append_jgojdo_k$(' (').append_am5a4z_k$(_Char___init__impl__6a9atx(10));
    var first = true;
    var tmp0_iterator = _get_children__my42wc_0(this).iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var child = tmp0_iterator.next_20eer_k$();
      if (first)
        first = false;
      else {
        // Inline function 'kotlin.text.appendLine' call
        var value = _Char___init__impl__6a9atx(44);
        // Inline function 'kotlin.text.appendLine' call
        builder.append_am5a4z_k$(value).append_am5a4z_k$(_Char___init__impl__6a9atx(10));
      }
      appendIndent(builder, indent);
      child.toString_y6fjxq_k$(builder, indent + 4 | 0, seen);
    }
    // Inline function 'kotlin.text.appendLine' call
    var tmp$ret$4 = builder.append_am5a4z_k$(_Char___init__impl__6a9atx(10));
    appendIndent(tmp$ret$4, indent - 4 | 0).append_am5a4z_k$(_Char___init__impl__6a9atx(41));
  };
  protoOf(XmlCompositeDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlValueDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlCompositeDescriptor))
      THROW_CCE();
    if (!equals(this.initialChildReorderInfo_1, other.initialChildReorderInfo_1))
      return false;
    return true;
  };
  protoOf(XmlCompositeDescriptor).hashCode = function () {
    var result = protoOf(XmlValueDescriptor).hashCode.call(this);
    var tmp = imul(31, result);
    var tmp0_safe_receiver = this.initialChildReorderInfo_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    result = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    return result;
  };
  function _set_defaultValue__2m9zyx($this, _set____db54di) {
    $this.defaultValue_1 = _set____db54di;
  }
  function _get_defaultValue__cxgql7($this) {
    return $this.defaultValue_1;
  }
  function defaultValue($this, serializersModule, config, deserializer) {
    // Inline function 'kotlin.let' call
    // Inline function 'kotlin.contracts.contract' call
    var d = $this.defaultValue_1;
    var tmp;
    if (!equals(d, UNSET_getInstance())) {
      return (d == null ? true : !(d == null)) ? d : THROW_CCE();
    }
    var tmp_0;
    if ($this.default_1 == null) {
      tmp_0 = null;
    } else {
      var defaultDecoder = new XmlDecoder(new XmlDecoderBase(serializersModule, config, CompactFragment_init_$Create$_0($this.default_1).getXmlReader_rf4t18_k$()), $this);
      tmp_0 = deserializer.deserialize_sy6x50_k$(defaultDecoder);
    }
    var d_0 = tmp_0;
    $this.defaultValue_1 = d_0;
    return (d_0 == null ? true : !(d_0 == null)) ? d_0 : THROW_CCE();
  }
  function UNSET() {
    UNSET_instance = this;
  }
  var UNSET_instance;
  function UNSET_getInstance() {
    if (UNSET_instance == null)
      new UNSET();
    return UNSET_instance;
  }
  function XmlValueDescriptor(policy, serializerParent, tagParent) {
    XmlDescriptor.call(this, policy, serializerParent, tagParent);
    var tmp = this;
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = serializerParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlCData) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var tmp0_elvis_lhs = tmp$ret$0;
    var tmp_0;
    if (tmp0_elvis_lhs == null) {
      var tmp$ret$1;
      $l$block_0: {
        // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
        var tmp0_iterator_0 = tagParent.get_elementUseAnnotations_y3m8sw_k$().iterator_jk1svi_k$();
        while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
          var e_0 = tmp0_iterator_0.next_20eer_k$();
          if (e_0 instanceof XmlCData) {
            tmp$ret$1 = e_0;
            break $l$block_0;
          }
        }
        tmp$ret$1 = null;
      }
      tmp_0 = tmp$ret$1;
    } else {
      tmp_0 = tmp0_elvis_lhs;
    }
    var tmp1_elvis_lhs = tmp_0;
    var tmp_1;
    if (tmp1_elvis_lhs == null) {
      var tmp$ret$2;
      $l$block_1: {
        // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
        var tmp0_iterator_1 = serializerParent.get_elementSerialDescriptor_gvznu_k$().get_annotations_20dirp_k$().iterator_jk1svi_k$();
        while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
          var e_1 = tmp0_iterator_1.next_20eer_k$();
          if (e_1 instanceof XmlCData) {
            tmp$ret$2 = e_1;
            break $l$block_1;
          }
        }
        tmp$ret$2 = null;
      }
      tmp_1 = tmp$ret$2;
    } else {
      tmp_1 = tmp1_elvis_lhs;
    }
    var tmp2_safe_receiver = tmp_1;
    tmp.isCData_1 = (tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_value_j01efc_k$()) === true;
    var tmp_2 = this;
    var tmp0_elvis_lhs_0 = get_declDefault(tagParent.get_elementUseAnnotations_y3m8sw_k$());
    tmp_2.default_1 = tmp0_elvis_lhs_0 == null ? get_declDefault_0(serializerParent.get_elementSerialDescriptor_gvznu_k$()) : tmp0_elvis_lhs_0;
    this.defaultValue_1 = UNSET_getInstance();
  }
  protoOf(XmlValueDescriptor).get_isCData_z90sze_k$ = function () {
    return this.isCData_1;
  };
  protoOf(XmlValueDescriptor).get_default_qtagd4_k$ = function () {
    return this.default_1;
  };
  protoOf(XmlValueDescriptor).defaultValue_70pzif_k$ = function (deserializer) {
    return defaultValue(this, EmptySerializersModule(), XmlConfig_init_$Create$_4(), deserializer);
  };
  protoOf(XmlValueDescriptor).defaultValue_vqyop3_k$ = function (xmlCodecBase, deserializer) {
    return defaultValue(this, xmlCodecBase.get_serializersModule_piitvg_k$(), xmlCodecBase.get_config_c0698r_k$(), deserializer);
  };
  protoOf(XmlValueDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlValueDescriptor))
      THROW_CCE();
    if (!(this.isCData_1 === other.isCData_1))
      return false;
    if (!(this.default_1 == other.default_1))
      return false;
    return equals(this.defaultValue_1, other.defaultValue_1);
  };
  protoOf(XmlValueDescriptor).hashCode = function () {
    var result = protoOf(XmlDescriptor).hashCode.call(this);
    result = imul(31, result) + getBooleanHashCode(this.isCData_1) | 0;
    var tmp = imul(31, result);
    var tmp0_safe_receiver = this.default_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : getStringHashCode(tmp0_safe_receiver);
    result = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    var tmp_0 = imul(31, result);
    var tmp2_safe_receiver = this.defaultValue_1;
    var tmp3_elvis_lhs = tmp2_safe_receiver == null ? null : hashCode(tmp2_safe_receiver);
    result = tmp_0 + (tmp3_elvis_lhs == null ? 0 : tmp3_elvis_lhs) | 0;
    return result;
  };
  function TRANSPARENT() {
    TRANSPARENT_instance = this;
    PolymorphicMode.call(this);
  }
  var TRANSPARENT_instance;
  function TRANSPARENT_getInstance() {
    if (TRANSPARENT_instance == null)
      new TRANSPARENT();
    return TRANSPARENT_instance;
  }
  function TAG() {
    TAG_instance = this;
    PolymorphicMode.call(this);
  }
  var TAG_instance;
  function TAG_getInstance() {
    if (TAG_instance == null)
      new TAG();
    return TAG_instance;
  }
  function ATTR(name) {
    PolymorphicMode.call(this);
    this.name_1 = name;
  }
  protoOf(ATTR).get_name_woqyms_k$ = function () {
    return this.name_1;
  };
  function PolymorphicMode() {
  }
  function ParentInfo(descriptor, index, useNameInfo, useOutputKind, overriddenSerializer) {
    useNameInfo = useNameInfo === VOID ? null : useNameInfo;
    useOutputKind = useOutputKind === VOID ? null : useOutputKind;
    overriddenSerializer = overriddenSerializer === VOID ? null : overriddenSerializer;
    this.descriptor_1 = descriptor;
    this.index_1 = index;
    this.overriddenSerializer_1 = overriddenSerializer;
    var tmp = this;
    var tmp_0;
    if (useNameInfo == null) {
      tmp_0 = this.index_1 === -1 ? DeclaredNameInfo_init_$Create$(this.descriptor_1.get_serialDescriptor_vvwkac_k$().get_serialName_u2rqhk_k$()) : getElementNameInfo(this.descriptor_1.get_serialDescriptor_vvwkac_k$(), this.index_1, toNamespace(this.descriptor_1.get_tagName_ocsgis_k$()));
    } else {
      tmp_0 = useNameInfo;
    }
    tmp.elementUseNameInfo_1 = tmp_0;
    var tmp_1 = this;
    var tmp_2;
    if (useOutputKind == null) {
      tmp_2 = this.index_1 === -1 ? null : getRequestedOutputKind(this.descriptor_1.get_serialDescriptor_vvwkac_k$().getElementAnnotations_omrjs6_k$(this.index_1));
    } else {
      tmp_2 = useOutputKind;
    }
    tmp_1.elementUseOutputKind_1 = tmp_2;
  }
  protoOf(ParentInfo).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(ParentInfo).get_index_it478p_k$ = function () {
    return this.index_1;
  };
  protoOf(ParentInfo).get_overriddenSerializer_2zhhv3_k$ = function () {
    return this.overriddenSerializer_1;
  };
  protoOf(ParentInfo).copy_nllc1_k$ = function (useNameInfo, useOutputKind, overriddenSerializer) {
    return new ParentInfo(this.descriptor_1, this.index_1, useNameInfo, useOutputKind, overriddenSerializer);
  };
  protoOf(ParentInfo).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof ParentInfo))
      THROW_CCE();
    if (!this.descriptor_1.equals(other.descriptor_1))
      return false;
    if (!(this.index_1 === other.index_1))
      return false;
    if (!equals(this.overriddenSerializer_1, other.overriddenSerializer_1))
      return false;
    if (!this.elementUseNameInfo_1.equals(other.elementUseNameInfo_1))
      return false;
    return equals(this.elementUseOutputKind_1, other.elementUseOutputKind_1);
  };
  protoOf(ParentInfo).hashCode = function () {
    var result = this.descriptor_1.hashCode();
    result = imul(31, result) + this.index_1 | 0;
    var tmp = imul(31, result);
    var tmp0_safe_receiver = this.overriddenSerializer_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    result = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    result = imul(31, result) + this.elementUseNameInfo_1.hashCode() | 0;
    var tmp_0 = imul(31, result);
    var tmp2_safe_receiver = this.elementUseOutputKind_1;
    var tmp3_elvis_lhs = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.hashCode();
    result = tmp_0 + (tmp3_elvis_lhs == null ? 0 : tmp3_elvis_lhs) | 0;
    return result;
  };
  protoOf(ParentInfo).get_parentIsInline_8sxqkq_k$ = function () {
    var tmp = this.descriptor_1;
    return tmp instanceof XmlInlineDescriptor;
  };
  protoOf(ParentInfo).get_namespace_t826ya_k$ = function () {
    return toNamespace(this.descriptor_1.get_tagName_ocsgis_k$());
  };
  protoOf(ParentInfo).get_elementTypeDescriptor_rhs6d8_k$ = function () {
    return !(this.overriddenSerializer_1 == null) ? new XmlTypeDescriptor(this.overriddenSerializer_1.get_descriptor_wjt6a0_k$(), toNamespace(this.descriptor_1.get_tagName_ocsgis_k$())) : this.index_1 === -1 ? this.descriptor_1.get_typeDescriptor_3nmlke_k$() : equals(this.get_elementSerialDescriptor_gvznu_k$().get_kind_wop7ml_k$(), CONTEXTUAL_getInstance()) ? this.descriptor_1.get_typeDescriptor_3nmlke_k$() : new XmlTypeDescriptor(this.get_elementSerialDescriptor_gvznu_k$(), this.descriptor_1.tagParent_1.get_namespace_t826ya_k$());
  };
  protoOf(ParentInfo).get_elementUseNameInfo_t1hkkt_k$ = function () {
    return this.elementUseNameInfo_1;
  };
  protoOf(ParentInfo).get_elementUseAnnotations_y3m8sw_k$ = function () {
    return this.index_1 === -1 ? emptyList() : this.descriptor_1.get_serialDescriptor_vvwkac_k$().getElementAnnotations_omrjs6_k$(this.index_1);
  };
  protoOf(ParentInfo).get_elementSerialDescriptor_gvznu_k$ = function () {
    return !(this.overriddenSerializer_1 == null) ? this.overriddenSerializer_1.get_descriptor_wjt6a0_k$() : equals(this.descriptor_1.get_serialKind_u2thhr_k$(), CONTEXTUAL_getInstance()) ? this.descriptor_1.get_serialDescriptor_vvwkac_k$() : this.index_1 === -1 ? this.descriptor_1.get_serialDescriptor_vvwkac_k$() : this.descriptor_1.get_serialDescriptor_vvwkac_k$().getElementDescriptor_ncda77_k$(this.index_1);
  };
  protoOf(ParentInfo).get_elementUseOutputKind_aak75j_k$ = function () {
    return this.elementUseOutputKind_1;
  };
  function polyTagName(parentName, polyChildSpecification, baseClass, serializersModule) {
    var currentPkg = substringBeforeLast(parentName.get_serialName_u2rqhk_k$(), _Char___init__impl__6a9atx(46), '');
    var parentTag = parentName.get_annotatedName_g9piau_k$();
    var eqPos = indexOf(polyChildSpecification, _Char___init__impl__6a9atx(61));
    var pkgPos;
    var typeNameBase;
    var prefix;
    var localPart;
    if (eqPos < 0) {
      typeNameBase = polyChildSpecification;
      pkgPos = lastIndexOf(polyChildSpecification, _Char___init__impl__6a9atx(46));
      // Inline function 'nl.adaptivity.xmlutil.prefix' call
      prefix = parentTag.getPrefix_bu8bd4_k$();
      var tmp;
      if (pkgPos < 0) {
        tmp = polyChildSpecification;
      } else {
        // Inline function 'kotlin.text.substring' call
        var startIndex = pkgPos + 1 | 0;
        // Inline function 'kotlin.js.asDynamic' call
        tmp = polyChildSpecification.substring(startIndex);
      }
      localPart = tmp;
    } else {
      // Inline function 'kotlin.text.trim' call
      // Inline function 'kotlin.text.substring' call
      // Inline function 'kotlin.js.asDynamic' call
      var this_0 = polyChildSpecification.substring(0, eqPos);
      typeNameBase = toString(trim(isCharSequence(this_0) ? this_0 : THROW_CCE()));
      pkgPos = lastIndexOf(polyChildSpecification, _Char___init__impl__6a9atx(46), eqPos - 1 | 0);
      var prefPos = indexOf(polyChildSpecification, _Char___init__impl__6a9atx(58), eqPos + 1 | 0);
      if (prefPos < 0) {
        // Inline function 'nl.adaptivity.xmlutil.prefix' call
        prefix = parentTag.getPrefix_bu8bd4_k$();
        // Inline function 'kotlin.text.trim' call
        // Inline function 'kotlin.text.substring' call
        var startIndex_0 = eqPos + 1 | 0;
        // Inline function 'kotlin.js.asDynamic' call
        var this_1 = polyChildSpecification.substring(startIndex_0);
        localPart = toString(trim(isCharSequence(this_1) ? this_1 : THROW_CCE()));
      } else {
        // Inline function 'kotlin.text.trim' call
        // Inline function 'kotlin.text.substring' call
        var startIndex_1 = eqPos + 1 | 0;
        // Inline function 'kotlin.js.asDynamic' call
        var this_2 = polyChildSpecification.substring(startIndex_1, prefPos);
        prefix = toString(trim(isCharSequence(this_2) ? this_2 : THROW_CCE()));
        // Inline function 'kotlin.text.trim' call
        // Inline function 'kotlin.text.substring' call
        var startIndex_2 = prefPos + 1 | 0;
        // Inline function 'kotlin.js.asDynamic' call
        var this_3 = polyChildSpecification.substring(startIndex_2);
        localPart = toString(trim(isCharSequence(this_3) ? this_3 : THROW_CCE()));
      }
    }
    var tmp_0;
    var tmp_1;
    if (!(pkgPos === 0)) {
      tmp_1 = true;
    } else {
      // Inline function 'kotlin.text.isEmpty' call
      tmp_1 = charSequenceLength(currentPkg) === 0;
    }
    if (tmp_1) {
      tmp_0 = typeNameBase;
    } else {
      // Inline function 'kotlin.text.substring' call
      // Inline function 'kotlin.js.asDynamic' call
      tmp_0 = currentPkg + '.' + typeNameBase.substring(1);
    }
    var typename = tmp_0;
    var tmp0_safe_receiver = serializersModule.getPolymorphic_adjtcj_k$(baseClass, typename);
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_descriptor_wjt6a0_k$();
    var tmp_2;
    if (tmp1_elvis_lhs == null) {
      throw XmlException_init_$Create$('Missing descriptor for ' + typename + ' in the serial context');
    } else {
      tmp_2 = tmp1_elvis_lhs;
    }
    var descriptor = tmp_2;
    var tmp_3;
    if (eqPos < 0) {
      var tmp_4 = Companion_getInstance_6();
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp$ret$19 = parentTag.getNamespaceURI_665tvr_k$();
      tmp_3 = tmp_4.declRequestedName_qyg2zk_k$(descriptor, new NamespaceImpl(prefix, tmp$ret$19));
    } else {
      // Inline function 'nl.adaptivity.xmlutil.namespaceURI' call
      var tmp$ret$20 = parentTag.getNamespaceURI_665tvr_k$();
      tmp_3 = new QName(tmp$ret$20, localPart, prefix);
    }
    var name = tmp_3;
    return new PolyBaseInfo(name, descriptor);
  }
  function XmlListLikeDescriptor(config, serializerParent, tagParent) {
    tagParent = tagParent === VOID ? serializerParent : tagParent;
    XmlDescriptor.call(this, config.get_policy_i5q4hn_k$(), serializerParent, tagParent);
    var tmp = this;
    var tmp_0;
    var tmp_1;
    if (tagParent instanceof DetachedParent) {
      tmp_1 = tagParent.isDocumentRoot_1;
    } else {
      tmp_1 = false;
    }
    if (tmp_1) {
      tmp_0 = false;
    } else {
      tmp_0 = config.get_policy_i5q4hn_k$().isListEluded_iwbfwl_k$(serializerParent, tagParent);
    }
    tmp.isListEluded_1 = tmp_0;
  }
  protoOf(XmlListLikeDescriptor).get_isListEluded_vahr8a_k$ = function () {
    return this.isListEluded_1;
  };
  protoOf(XmlListLikeDescriptor).get_doInline_tyxd0z_k$ = function () {
    return false;
  };
  protoOf(XmlListLikeDescriptor).get_preserveSpace_4xp4oh_k$ = function () {
    return false;
  };
  protoOf(XmlListLikeDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!protoOf(XmlDescriptor).equals.call(this, other))
      return false;
    if (!(other instanceof XmlListLikeDescriptor))
      THROW_CCE();
    if (!(this.get_isListEluded_vahr8a_k$() === other.get_isListEluded_vahr8a_k$()))
      return false;
    if (!(this.get_doInline_tyxd0z_k$() === other.get_doInline_tyxd0z_k$()))
      return false;
    return this.get_preserveSpace_4xp4oh_k$() === other.get_preserveSpace_4xp4oh_k$();
  };
  protoOf(XmlListLikeDescriptor).hashCode = function () {
    var result = protoOf(XmlDescriptor).hashCode.call(this);
    result = imul(31, result) + getBooleanHashCode(this.get_isListEluded_vahr8a_k$()) | 0;
    result = imul(31, result) + getBooleanHashCode(this.get_doInline_tyxd0z_k$()) | 0;
    result = imul(31, result) + getBooleanHashCode(this.get_preserveSpace_4xp4oh_k$()) | 0;
    return result;
  };
  function appendIndent(_this__u8e3s4, count) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.appendIndent.<anonymous>' call
    var inductionVariable = 0;
    if (inductionVariable < count)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        _this__u8e3s4.append_am5a4z_k$(_Char___init__impl__6a9atx(32));
      }
       while (inductionVariable < count);
    return _this__u8e3s4;
  }
  function InjectedParentTag(index, elementTypeDescriptor, elementUseNameInfo, namespace, elementUseOutputKind, overriddenSerializer) {
    elementUseOutputKind = elementUseOutputKind === VOID ? null : elementUseOutputKind;
    overriddenSerializer = overriddenSerializer === VOID ? null : overriddenSerializer;
    this.index_1 = index;
    this.elementTypeDescriptor_1 = elementTypeDescriptor;
    this.elementUseNameInfo_1 = elementUseNameInfo;
    this.namespace_1 = namespace;
    this.elementUseOutputKind_1 = elementUseOutputKind;
    this.overriddenSerializer_1 = overriddenSerializer;
    this.descriptor_1 = null;
  }
  protoOf(InjectedParentTag).get_index_it478p_k$ = function () {
    return this.index_1;
  };
  protoOf(InjectedParentTag).get_elementTypeDescriptor_rhs6d8_k$ = function () {
    return this.elementTypeDescriptor_1;
  };
  protoOf(InjectedParentTag).get_elementUseNameInfo_t1hkkt_k$ = function () {
    return this.elementUseNameInfo_1;
  };
  protoOf(InjectedParentTag).get_namespace_t826ya_k$ = function () {
    return this.namespace_1;
  };
  protoOf(InjectedParentTag).get_elementUseOutputKind_aak75j_k$ = function () {
    return this.elementUseOutputKind_1;
  };
  protoOf(InjectedParentTag).get_overriddenSerializer_2zhhv3_k$ = function () {
    return this.overriddenSerializer_1;
  };
  protoOf(InjectedParentTag).get_parentIsInline_8sxqkq_k$ = function () {
    return false;
  };
  protoOf(InjectedParentTag).get_descriptor_wjt6a0_k$ = function () {
    return this.descriptor_1;
  };
  protoOf(InjectedParentTag).get_elementUseAnnotations_y3m8sw_k$ = function () {
    return emptyList();
  };
  protoOf(InjectedParentTag).get_elementSerialDescriptor_gvznu_k$ = function () {
    return this.elementTypeDescriptor_1.get_serialDescriptor_vvwkac_k$();
  };
  protoOf(InjectedParentTag).copy_nllc1_k$ = function (useNameInfo, useOutputKind, overriddenSerializer) {
    return new InjectedParentTag(this.index_1, this.elementTypeDescriptor_1, useNameInfo, this.namespace_1, useOutputKind, overriddenSerializer);
  };
  function get_declDefault(_this__u8e3s4) {
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = _this__u8e3s4.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlDefault) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var tmp0_safe_receiver = tmp$ret$0;
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver.get_value_j01efc_k$();
  }
  function get_declDefault_0(_this__u8e3s4) {
    return get_declDefault(_this__u8e3s4.get_annotations_20dirp_k$());
  }
  function getElementNameInfo(_this__u8e3s4, index, parentNamespace) {
    var serialName = _this__u8e3s4.getElementName_u4sqmf_k$(index);
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = _this__u8e3s4.getElementAnnotations_omrjs6_k$(index).iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlSerialName) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var annotation = tmp$ret$0;
    var qName = annotation == null ? null : toQName(annotation, serialName, parentNamespace);
    return new DeclaredNameInfo(serialName, qName, (annotation == null ? null : annotation.get_namespace_t826ya_k$()) === get_UNSET_ANNOTATION_VALUE());
  }
  function getRequestedOutputKind(_this__u8e3s4) {
    var xmlCData = null;
    var tmp0_iterator = _this__u8e3s4.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var annotation = tmp0_iterator.next_20eer_k$();
      var tmp1_safe_receiver = annotation instanceof XmlValue ? annotation : null;
      if ((tmp1_safe_receiver == null ? null : tmp1_safe_receiver.get_value_j01efc_k$()) === true)
        return OutputKind_Mixed_getInstance();
      else {
        var tmp;
        if (annotation instanceof XmlId) {
          tmp = true;
        } else {
          tmp = annotation instanceof XmlOtherAttributes;
        }
        if (tmp)
          return OutputKind_Attribute_getInstance();
        else {
          if (annotation instanceof XmlElement)
            return annotation.get_value_j01efc_k$() ? OutputKind_Element_getInstance() : OutputKind_Attribute_getInstance();
          else {
            var tmp_0;
            if (annotation instanceof XmlPolyChildren) {
              tmp_0 = true;
            } else {
              tmp_0 = annotation instanceof XmlChildrenName;
            }
            if (tmp_0)
              return OutputKind_Element_getInstance();
            else {
              if (annotation instanceof XmlCData)
                xmlCData = annotation;
            }
          }
        }
      }
    }
    var tmp2_safe_receiver = xmlCData;
    if ((tmp2_safe_receiver == null ? null : tmp2_safe_receiver.get_value_j01efc_k$()) === true)
      return OutputKind_Element_getInstance();
    return null;
  }
  function declOutputKind(_this__u8e3s4) {
    var tmp0_iterator = _this__u8e3s4.get_annotations_20dirp_k$().iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var a = tmp0_iterator.next_20eer_k$();
      var tmp;
      if (a instanceof XmlValue) {
        tmp = a.get_value_j01efc_k$();
      } else {
        tmp = false;
      }
      if (tmp)
        return OutputKind_Text_getInstance();
      else {
        if (a instanceof XmlId)
          return OutputKind_Attribute_getInstance();
        else {
          if (a instanceof XmlElement)
            return a.get_value_j01efc_k$() ? OutputKind_Element_getInstance() : OutputKind_Attribute_getInstance();
          else {
            var tmp_0;
            if (a instanceof XmlPolyChildren) {
              tmp_0 = true;
            } else {
              tmp_0 = a instanceof XmlChildrenName;
            }
            if (tmp_0)
              return OutputKind_Element_getInstance();
          }
        }
      }
    }
    return null;
  }
  function getNameInfo(_this__u8e3s4, parentNamespace) {
    var tmp;
    if (_this__u8e3s4.get_isNullable_67sy7o_k$() ? endsWith(_this__u8e3s4.get_serialName_u2rqhk_k$(), _Char___init__impl__6a9atx(63)) : false) {
      tmp = dropLast(_this__u8e3s4.get_serialName_u2rqhk_k$(), 1);
    } else {
      var tmp0_safe_receiver = get_capturedKClass(_this__u8e3s4);
      var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : get_serialName(tmp0_safe_receiver);
      tmp = tmp1_elvis_lhs == null ? _this__u8e3s4.get_serialName_u2rqhk_k$() : tmp1_elvis_lhs;
    }
    var realSerialName = tmp;
    var tmp$ret$0;
    $l$block: {
      // Inline function 'nl.adaptivity.xmlutil.serialization.firstOrNull' call
      var tmp0_iterator = _this__u8e3s4.get_annotations_20dirp_k$().iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var e = tmp0_iterator.next_20eer_k$();
        if (e instanceof XmlSerialName) {
          tmp$ret$0 = e;
          break $l$block;
        }
      }
      tmp$ret$0 = null;
    }
    var annotation = tmp$ret$0;
    var qName = annotation == null ? null : toQName(annotation, realSerialName, parentNamespace);
    return new DeclaredNameInfo(realSerialName, qName, (annotation == null ? null : annotation.get_namespace_t826ya_k$()) === get_UNSET_ANNOTATION_VALUE());
  }
  function element$factory() {
    return getPropertyCallableRef('element', 1, KProperty1, function (receiver) {
      return _get_element__z0t21h(receiver);
    }, null);
  }
  function tagName$factory() {
    return getPropertyCallableRef('tagName', 1, KProperty1, function (receiver) {
      return receiver.get_tagName_ocsgis_k$();
    }, null);
  }
  function children$factory() {
    return getPropertyCallableRef('children', 1, KProperty1, function (receiver) {
      return _get_children__my42wc(receiver);
    }, null);
  }
  function childDescriptor$factory() {
    return getPropertyCallableRef('childDescriptor', 1, KProperty1, function (receiver) {
      return _get_childDescriptor__xb3z96(receiver);
    }, null);
  }
  function keyDescriptor$factory() {
    return getPropertyCallableRef('keyDescriptor', 1, KProperty1, function (receiver) {
      return receiver.get_keyDescriptor_qkqayt_k$();
    }, null);
  }
  function valueDescriptor$factory() {
    return getPropertyCallableRef('valueDescriptor', 1, KProperty1, function (receiver) {
      return receiver.get_valueDescriptor_j2bi95_k$();
    }, null);
  }
  function isValueCollapsed$factory() {
    return getPropertyCallableRef('isValueCollapsed', 1, KProperty1, function (receiver) {
      return receiver.get_isValueCollapsed_3vm2k9_k$();
    }, null);
  }
  function entryName$factory() {
    return getPropertyCallableRef('entryName', 1, KProperty1, function (receiver) {
      return receiver.get_entryName_l031w_k$();
    }, null);
  }
  function keyDescriptor$factory_0() {
    return getPropertyCallableRef('keyDescriptor', 1, KProperty1, function (receiver) {
      return _get_keyDescriptor__hu7alf(receiver);
    }, null);
  }
  function valueDescriptor$factory_0() {
    return getPropertyCallableRef('valueDescriptor', 1, KProperty1, function (receiver) {
      return _get_valueDescriptor__8ouq3z(receiver);
    }, null);
  }
  function child$factory() {
    return getPropertyCallableRef('child', 1, KProperty1, function (receiver) {
      return _get_child__j05w3v(receiver);
    }, null);
  }
  function isUnsigned$factory() {
    return getPropertyCallableRef('isUnsigned', 1, KProperty1, function (receiver) {
      return receiver.get_isUnsigned_xk1s8o_k$();
    }, null);
  }
  function children$factory_0() {
    return getPropertyCallableRef('children', 1, KProperty1, function (receiver) {
      return _get_children__my42wc_0(receiver);
    }, null);
  }
  function childReorderInfo$factory() {
    return getPropertyCallableRef('childReorderInfo', 1, KProperty1, function (receiver) {
      return _get_childReorderInfo__htyspq(receiver);
    }, null);
  }
  function Companion_5() {
    Companion_instance_5 = this;
    this.OTHERS_1 = -2;
  }
  protoOf(Companion_5).get_OTHERS_23qess_k$ = function () {
    return this.OTHERS_1;
  };
  var Companion_instance_5;
  function Companion_getInstance_11() {
    if (Companion_instance_5 == null)
      new Companion_5();
    return Companion_instance_5;
  }
  function XmlOrderConstraint(before, after) {
    Companion_getInstance_11();
    this.before_1 = before;
    this.after_1 = after;
  }
  protoOf(XmlOrderConstraint).get_before_bdhrwo_k$ = function () {
    return this.before_1;
  };
  protoOf(XmlOrderConstraint).get_after_iol2gj_k$ = function () {
    return this.after_1;
  };
  protoOf(XmlOrderConstraint).map_jt7z4r_k$ = function (transform) {
    return new Pair(transform(this.before_1), transform(this.after_1));
  };
  protoOf(XmlOrderConstraint).component1_7eebsc_k$ = function () {
    return this.before_1;
  };
  protoOf(XmlOrderConstraint).component2_7eebsb_k$ = function () {
    return this.after_1;
  };
  protoOf(XmlOrderConstraint).copy_fhtu3_k$ = function (before, after) {
    return new XmlOrderConstraint(before, after);
  };
  protoOf(XmlOrderConstraint).copy$default_kthut5_k$ = function (before, after, $super) {
    before = before === VOID ? this.before_1 : before;
    after = after === VOID ? this.after_1 : after;
    return $super === VOID ? this.copy_fhtu3_k$(before, after) : $super.copy_fhtu3_k$.call(this, before, after);
  };
  protoOf(XmlOrderConstraint).toString = function () {
    return 'XmlOrderConstraint(before=' + this.before_1 + ', after=' + this.after_1 + ')';
  };
  protoOf(XmlOrderConstraint).hashCode = function () {
    var result = this.before_1;
    result = imul(result, 31) + this.after_1 | 0;
    return result;
  };
  protoOf(XmlOrderConstraint).equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof XmlOrderConstraint))
      return false;
    var tmp0_other_with_cast = other instanceof XmlOrderConstraint ? other : THROW_CCE();
    if (!(this.before_1 === tmp0_other_with_cast.before_1))
      return false;
    if (!(this.after_1 === tmp0_other_with_cast.after_1))
      return false;
    return true;
  };
  var OrderWildcard_BEFORE_instance;
  var OrderWildcard_NONE_instance;
  var OrderWildcard_AFTER_instance;
  function values_2() {
    return [OrderWildcard_BEFORE_getInstance(), OrderWildcard_NONE_getInstance(), OrderWildcard_AFTER_getInstance()];
  }
  function valueOf_2(value) {
    switch (value) {
      case 'BEFORE':
        return OrderWildcard_BEFORE_getInstance();
      case 'NONE':
        return OrderWildcard_NONE_getInstance();
      case 'AFTER':
        return OrderWildcard_AFTER_getInstance();
      default:
        OrderWildcard_initEntries();
        THROW_IAE('No enum constant value.');
        break;
    }
  }
  function get_entries_2() {
    if ($ENTRIES_2 == null)
      $ENTRIES_2 = enumEntries(values_2());
    return $ENTRIES_2;
  }
  var OrderWildcard_entriesInitialized;
  function OrderWildcard_initEntries() {
    if (OrderWildcard_entriesInitialized)
      return Unit_getInstance();
    OrderWildcard_entriesInitialized = true;
    OrderWildcard_BEFORE_instance = new OrderWildcard('BEFORE', 0);
    OrderWildcard_NONE_instance = new OrderWildcard('NONE', 1);
    OrderWildcard_AFTER_instance = new OrderWildcard('AFTER', 2);
  }
  var $ENTRIES_2;
  function OrderWildcard(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  function XmlOrderNode$toString$lambda(it) {
    return it.elementIdx_1.toString();
  }
  function XmlOrderNode$toString$lambda_0(it) {
    return it.elementIdx_1.toString();
  }
  function OrderWildcard_BEFORE_getInstance() {
    OrderWildcard_initEntries();
    return OrderWildcard_BEFORE_instance;
  }
  function OrderWildcard_NONE_getInstance() {
    OrderWildcard_initEntries();
    return OrderWildcard_NONE_instance;
  }
  function OrderWildcard_AFTER_getInstance() {
    OrderWildcard_initEntries();
    return OrderWildcard_AFTER_instance;
  }
  function XmlOrderNode(elementIdx) {
    this.elementIdx_1 = elementIdx;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.predecessors_1 = ArrayList_init_$Create$();
    var tmp_0 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_0.successors_1 = ArrayList_init_$Create$();
    this.wildCard_1 = OrderWildcard_NONE_getInstance();
  }
  protoOf(XmlOrderNode).get_elementIdx_and5qu_k$ = function () {
    return this.elementIdx_1;
  };
  protoOf(XmlOrderNode).get_predecessors_c1lbyr_k$ = function () {
    return this.predecessors_1;
  };
  protoOf(XmlOrderNode).get_successors_wb15yi_k$ = function () {
    return this.successors_1;
  };
  protoOf(XmlOrderNode).set_wildCard_qcpu6z_k$ = function (_set____db54di) {
    this.wildCard_1 = _set____db54di;
  };
  protoOf(XmlOrderNode).get_wildCard_jt83ib_k$ = function () {
    return this.wildCard_1;
  };
  protoOf(XmlOrderNode).addSuccessors_55lsf_k$ = function (nodes) {
    var inductionVariable = 0;
    var last = nodes.length;
    while (inductionVariable < last) {
      var node = nodes[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (!this.successors_1.contains_aljjnj_k$(node)) {
        this.successors_1.add_utx5q5_k$(node);
        node.addPredecessors_jpp8ek_k$([this]);
      }
    }
  };
  protoOf(XmlOrderNode).addPredecessors_jpp8ek_k$ = function (nodes) {
    var inductionVariable = 0;
    var last = nodes.length;
    while (inductionVariable < last) {
      var node = nodes[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (!this.predecessors_1.contains_aljjnj_k$(node)) {
        this.predecessors_1.add_utx5q5_k$(node);
        node.addSuccessors_55lsf_k$([this]);
      }
    }
  };
  protoOf(XmlOrderNode).toString = function () {
    var tmp = joinToString(this.predecessors_1, VOID, VOID, VOID, VOID, VOID, XmlOrderNode$toString$lambda);
    return '(' + this.elementIdx_1 + ', p=[' + tmp + '], s=[' + joinToString(this.successors_1, VOID, VOID, VOID, VOID, VOID, XmlOrderNode$toString$lambda_0) + '])';
  };
  protoOf(XmlOrderNode).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof XmlOrderNode))
      THROW_CCE();
    if (!(this.elementIdx_1 === other.elementIdx_1))
      return false;
    if (!equals(this.predecessors_1, other.predecessors_1))
      return false;
    if (!equals(this.successors_1, other.successors_1))
      return false;
    return this.wildCard_1.equals(other.wildCard_1);
  };
  protoOf(XmlOrderNode).hashCode = function () {
    var result = this.elementIdx_1;
    result = imul(31, result) + hashCode(this.predecessors_1) | 0;
    result = imul(31, result) + hashCode(this.successors_1) | 0;
    result = imul(31, result) + this.wildCard_1.hashCode() | 0;
    return result;
  };
  function sequenceStarts(_this__u8e3s4, childCount) {
    var beforeAny = booleanArray(childCount);
    var hasWildCard = false;
    var afterAny = booleanArray(childCount);
    var tmp = 0;
    // Inline function 'kotlin.arrayOfNulls' call
    var tmp_0 = fillArrayVal(Array(childCount), null);
    while (tmp < childCount) {
      var tmp_1 = tmp;
      tmp_0[tmp_1] = new XmlOrderNode(tmp_1);
      tmp = tmp + 1 | 0;
    }
    var nodes = tmp_0;
    // Inline function 'kotlin.collections.forEach' call
    var tmp0_iterator = _this__u8e3s4.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>' call
      if (element.get_after_iol2gj_k$() === Companion_getInstance_11().get_OTHERS_23qess_k$()) {
        hasWildCard = true;
        beforeAny[element.get_before_bdhrwo_k$()] = true;
      } else if (element.get_before_bdhrwo_k$() === Companion_getInstance_11().get_OTHERS_23qess_k$()) {
        hasWildCard = true;
        afterAny[element.get_after_iol2gj_k$()] = true;
      } else {
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.XmlOrderConstraint.map' call
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>.<anonymous>' call
        var tmp_2 = nodes[element.get_before_bdhrwo_k$()];
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>.<anonymous>' call
        var tmp$ret$3 = nodes[element.get_after_iol2gj_k$()];
        var tmp0_container = new Pair(tmp_2, tmp$ret$3);
        var before = tmp0_container.component1_7eebsc_k$();
        var after = tmp0_container.component2_7eebsb_k$();
        before.addSuccessors_55lsf_k$([after]);
        after.addPredecessors_jpp8ek_k$([before]);
      }
    }
    if (hasWildCard) {
      var inductionVariable = 0;
      var last = beforeAny.length - 1 | 0;
      if (inductionVariable <= last)
        do {
          var idx = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          if (beforeAny[idx]) {
            nodes[idx].wildCard_1 = OrderWildcard_BEFORE_getInstance();
          } else if (afterAny[idx]) {
            nodes[idx].wildCard_1 = OrderWildcard_AFTER_getInstance();
          }
        }
         while (inductionVariable <= last);
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.contracts.contract' call
      var beforesToCheck = ArrayDeque_init_$Create$();
      // Inline function 'kotlin.collections.filter' call
      // Inline function 'kotlin.collections.filterTo' call
      var this_0 = get_indices(beforeAny);
      var destination = ArrayList_init_$Create$();
      var tmp0_iterator_0 = this_0.iterator_jk1svi_k$();
      while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
        var element_0 = tmp0_iterator_0.next_20eer_k$();
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>.<anonymous>' call
        if (beforeAny[element_0]) {
          destination.add_utx5q5_k$(element_0);
        }
      }
      beforesToCheck.addAll_4lagoh_k$(destination);
      $l$loop: while (true) {
        // Inline function 'kotlin.collections.isNotEmpty' call
        if (!!beforesToCheck.isEmpty_y1axqb_k$()) {
          break $l$loop;
        }
        var idx_0 = beforesToCheck.removeFirst_58pi0k_k$();
        // Inline function 'kotlin.sequences.forEach' call
        var tmp_3 = asSequence_1(nodes[idx_0].predecessors_1);
        var tmp0_iterator_1 = filter(tmp_3, sequenceStarts$lambda(beforeAny)).iterator_jk1svi_k$();
        while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
          var element_1 = tmp0_iterator_1.next_20eer_k$();
          // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>.<anonymous>' call
          element_1.wildCard_1 = OrderWildcard_BEFORE_getInstance();
          beforesToCheck.add_utx5q5_k$(element_1.elementIdx_1);
        }
      }
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.contracts.contract' call
      var aftersToCheck = ArrayDeque_init_$Create$();
      // Inline function 'kotlin.collections.filter' call
      // Inline function 'kotlin.collections.filterTo' call
      var this_1 = get_indices(afterAny);
      var destination_0 = ArrayList_init_$Create$();
      var tmp0_iterator_2 = this_1.iterator_jk1svi_k$();
      while (tmp0_iterator_2.hasNext_bitz1p_k$()) {
        var element_2 = tmp0_iterator_2.next_20eer_k$();
        // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>.<anonymous>' call
        if (afterAny[element_2]) {
          destination_0.add_utx5q5_k$(element_2);
        }
      }
      aftersToCheck.addAll_4lagoh_k$(destination_0);
      $l$loop_0: while (true) {
        // Inline function 'kotlin.collections.isNotEmpty' call
        if (!!aftersToCheck.isEmpty_y1axqb_k$()) {
          break $l$loop_0;
        }
        var idx_1 = aftersToCheck.removeFirst_58pi0k_k$();
        // Inline function 'kotlin.sequences.forEach' call
        var tmp_4 = asSequence_1(nodes[idx_1].successors_1);
        var tmp0_iterator_3 = filter(tmp_4, sequenceStarts$lambda_0(afterAny)).iterator_jk1svi_k$();
        while (tmp0_iterator_3.hasNext_bitz1p_k$()) {
          var element_3 = tmp0_iterator_3.next_20eer_k$();
          // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>.<anonymous>' call
          element_3.wildCard_1 = OrderWildcard_AFTER_getInstance();
          aftersToCheck.add_utx5q5_k$(element_3.elementIdx_1);
        }
      }
    }
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination_1 = ArrayList_init_$Create$();
    var inductionVariable_0 = 0;
    var last_0 = nodes.length;
    while (inductionVariable_0 < last_0) {
      var element_4 = nodes[inductionVariable_0];
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.sequenceStarts.<anonymous>' call
      if (element_4.predecessors_1.isEmpty_y1axqb_k$()) {
        destination_1.add_utx5q5_k$(element_4);
      }
    }
    return destination_1;
  }
  function flatten(_this__u8e3s4) {
    var seen = booleanArray(flatten$lastIndex(_this__u8e3s4) + 1 | 0);
    // Inline function 'kotlin.also' call
    // Inline function 'kotlin.collections.mutableListOf' call
    var this_0 = ArrayList_init_$Create$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'nl.adaptivity.xmlutil.serialization.structure.flatten.<anonymous>' call
    this_0.add_utx5q5_k$(_this__u8e3s4);
    flatten$flattenSuccessorsTo(_this__u8e3s4, seen, this_0);
    return this_0;
  }
  function fullFlatten(_this__u8e3s4, serialDescriptor, children) {
    // Inline function 'kotlin.arrayOfNulls' call
    var size = serialDescriptor.get_elementsCount_288r0x_k$();
    var originalOrderNodes = fillArrayVal(Array(size), null);
    // Inline function 'kotlin.collections.mutableListOf' call
    var allNodes = ArrayList_init_$Create$();
    var tmp = asSequence_1(_this__u8e3s4);
    var tmp0_iterator = filter(tmp, fullFlatten$lambda).iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var node = tmp0_iterator.next_20eer_k$();
      fullFlatten$addTransitive(originalOrderNodes, node);
      allNodes.add_utx5q5_k$(node);
    }
    var inductionVariable = 0;
    var last = originalOrderNodes.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (originalOrderNodes[i] == null) {
          var node_0 = new XmlOrderNode(i);
          originalOrderNodes[i] = node_0;
          allNodes.add_utx5q5_k$(node_0);
        }
      }
       while (inductionVariable <= last);
    // Inline function 'kotlin.collections.partition' call
    var first = ArrayList_init_$Create$();
    var second = ArrayList_init_$Create$();
    var tmp0_iterator_0 = allNodes.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator_0.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.fullFlatten.<anonymous>' call
      if (children.get_c1px32_k$(element.elementIdx_1).get_outputKind_tsa18e_k$().equals(OutputKind_Attribute_getInstance())) {
        first.add_utx5q5_k$(element);
      } else {
        second.add_utx5q5_k$(element);
      }
    }
    var tmp2_container = new Pair(first, second);
    var attributes = tmp2_container.component1_7eebsc_k$();
    var members = tmp2_container.component2_7eebsb_k$();
    var tmp_0 = 0;
    var tmp_1 = serialDescriptor.get_elementsCount_288r0x_k$();
    var tmp_2 = new Int32Array(tmp_1);
    while (tmp_0 < tmp_1) {
      tmp_2[tmp_0] = -1;
      tmp_0 = tmp_0 + 1 | 0;
    }
    var finalToDeclMap = tmp_2;
    var tmp_3 = 0;
    var tmp_4 = serialDescriptor.get_elementsCount_288r0x_k$();
    var tmp_5 = new Int32Array(tmp_4);
    while (tmp_3 < tmp_4) {
      tmp_5[tmp_3] = -1;
      tmp_3 = tmp_3 + 1 | 0;
    }
    var declToOrderMap = tmp_5;
    var nextElemIdx = 0;
    // Inline function 'kotlin.collections.mutableListOf' call
    var constraints = ArrayList_init_$Create$();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var indexedObject = [attributes, members];
    var inductionVariable_0 = 0;
    var last_0 = indexedObject.length;
    while (inductionVariable_0 < last_0) {
      var attrOrMembers = indexedObject[inductionVariable_0];
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      // Inline function 'kotlin.collections.mutableListOf' call
      var before = ArrayList_init_$Create$();
      // Inline function 'kotlin.collections.mutableListOf' call
      var general = ArrayList_init_$Create$();
      // Inline function 'kotlin.collections.mutableListOf' call
      var after = ArrayList_init_$Create$();
      var tmp4_iterator = attrOrMembers.iterator_jk1svi_k$();
      while (tmp4_iterator.hasNext_bitz1p_k$()) {
        var node_1 = tmp4_iterator.next_20eer_k$();
        switch (node_1.wildCard_1.get_ordinal_ip24qg_k$()) {
          case 0:
            before.add_utx5q5_k$(node_1);
            break;
          case 1:
            general.add_utx5q5_k$(node_1);
            break;
          case 2:
            after.add_utx5q5_k$(node_1);
            break;
        }
      }
      var tmp6_iterator = before.iterator_jk1svi_k$();
      while (tmp6_iterator.hasNext_bitz1p_k$()) {
        var node_2 = tmp6_iterator.next_20eer_k$();
        constraints.add_utx5q5_k$(new XmlOrderConstraint(node_2.elementIdx_1, Companion_getInstance_11().get_OTHERS_23qess_k$()));
      }
      var tmp7_iterator = after.iterator_jk1svi_k$();
      while (tmp7_iterator.hasNext_bitz1p_k$()) {
        var node_3 = tmp7_iterator.next_20eer_k$();
        constraints.add_utx5q5_k$(new XmlOrderConstraint(Companion_getInstance_11().get_OTHERS_23qess_k$(), node_3.elementIdx_1));
      }
      // Inline function 'kotlin.arrayOf' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var indexedObject_0 = [before, general, after];
      var inductionVariable_1 = 0;
      var last_1 = indexedObject_0.length;
      while (inductionVariable_1 < last_1) {
        var base = indexedObject_0[inductionVariable_1];
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        var queue = toMutableList(base);
        $l$loop: while (true) {
          // Inline function 'kotlin.collections.isNotEmpty' call
          if (!!queue.isEmpty_y1axqb_k$()) {
            break $l$loop;
          }
          var tmp$ret$17;
          $l$block_0: {
            // Inline function 'nl.adaptivity.xmlutil.serialization.structure.indexOfMinBy' call
            if (queue.isEmpty_y1axqb_k$()) {
              tmp$ret$17 = -1;
              break $l$block_0;
            }
            if (queue.get_size_woubt6_k$() === 1) {
              tmp$ret$17 = 0;
              break $l$block_0;
            }
            var idx = 1;
            var minIdx = 0;
            // Inline function 'nl.adaptivity.xmlutil.serialization.structure.fullFlatten.<anonymous>' call
            var node_4 = queue.get_c1px32_k$(0);
            var tmp_6;
            var tmp$ret$18;
            $l$block_2: {
              // Inline function 'kotlin.collections.any' call
              var this_0 = node_4.predecessors_1;
              var tmp_7;
              if (isInterface(this_0, Collection)) {
                tmp_7 = this_0.isEmpty_y1axqb_k$();
              } else {
                tmp_7 = false;
              }
              if (tmp_7) {
                tmp$ret$18 = false;
                break $l$block_2;
              }
              var tmp0_iterator_1 = this_0.iterator_jk1svi_k$();
              while (tmp0_iterator_1.hasNext_bitz1p_k$()) {
                var element_0 = tmp0_iterator_1.next_20eer_k$();
                // Inline function 'nl.adaptivity.xmlutil.serialization.structure.fullFlatten.<anonymous>.<anonymous>' call
                if (declToOrderMap[element_0.elementIdx_1] < 0) {
                  tmp$ret$18 = true;
                  break $l$block_2;
                }
              }
              tmp$ret$18 = false;
            }
            if (tmp$ret$18) {
              tmp_6 = serialDescriptor.get_elementsCount_288r0x_k$();
            } else {
              tmp_6 = node_4.elementIdx_1;
            }
            var minValue = tmp_6;
            do {
              // Inline function 'nl.adaptivity.xmlutil.serialization.structure.fullFlatten.<anonymous>' call
              var node_5 = queue.get_c1px32_k$(idx);
              var tmp_8;
              var tmp$ret$21;
              $l$block_4: {
                // Inline function 'kotlin.collections.any' call
                var this_1 = node_5.predecessors_1;
                var tmp_9;
                if (isInterface(this_1, Collection)) {
                  tmp_9 = this_1.isEmpty_y1axqb_k$();
                } else {
                  tmp_9 = false;
                }
                if (tmp_9) {
                  tmp$ret$21 = false;
                  break $l$block_4;
                }
                var tmp0_iterator_2 = this_1.iterator_jk1svi_k$();
                while (tmp0_iterator_2.hasNext_bitz1p_k$()) {
                  var element_1 = tmp0_iterator_2.next_20eer_k$();
                  // Inline function 'nl.adaptivity.xmlutil.serialization.structure.fullFlatten.<anonymous>.<anonymous>' call
                  if (declToOrderMap[element_1.elementIdx_1] < 0) {
                    tmp$ret$21 = true;
                    break $l$block_4;
                  }
                }
                tmp$ret$21 = false;
              }
              if (tmp$ret$21) {
                tmp_8 = serialDescriptor.get_elementsCount_288r0x_k$();
              } else {
                tmp_8 = node_5.elementIdx_1;
              }
              var v = tmp_8;
              if (compareTo(minValue, v) > 0) {
                minIdx = idx;
                minValue = v;
              }
              idx = idx + 1 | 0;
            }
             while (idx < queue.get_size_woubt6_k$());
            tmp$ret$17 = minIdx;
          }
          var nextIdx = tmp$ret$17;
          var next = queue.removeAt_6niowx_k$(nextIdx);
          finalToDeclMap[nextElemIdx] = next.elementIdx_1;
          declToOrderMap[next.elementIdx_1] = nextElemIdx;
          nextElemIdx = nextElemIdx + 1 | 0;
          var tmp10_iterator = next.successors_1.iterator_jk1svi_k$();
          while (tmp10_iterator.hasNext_bitz1p_k$()) {
            var successor = tmp10_iterator.next_20eer_k$();
            if (base.contains_aljjnj_k$(successor)) {
              constraints.add_utx5q5_k$(new XmlOrderConstraint(next.elementIdx_1, successor.elementIdx_1));
            }
            if (!queue.contains_aljjnj_k$(successor)) {
              queue.add_utx5q5_k$(successor);
            }
          }
        }
      }
    }
    return to(constraints, declToOrderMap);
  }
  function indexOfMinBy(_this__u8e3s4, selector) {
    if (_this__u8e3s4.isEmpty_y1axqb_k$())
      return -1;
    if (_this__u8e3s4.get_size_woubt6_k$() === 1)
      return 0;
    var idx = 1;
    var minIdx = 0;
    var minValue = selector(_this__u8e3s4.get_c1px32_k$(0));
    do {
      var v = selector(_this__u8e3s4.get_c1px32_k$(idx));
      if (compareTo(minValue, v) > 0) {
        minIdx = idx;
        minValue = v;
      }
      idx = idx + 1 | 0;
    }
     while (idx < _this__u8e3s4.get_size_woubt6_k$());
    return minIdx;
  }
  function flatten$lastIndex(_this__u8e3s4) {
    var lastIndex = _this__u8e3s4.elementIdx_1;
    var tmp0_iterator = _this__u8e3s4.successors_1.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var successor = tmp0_iterator.next_20eer_k$();
      var c = flatten$lastIndex(successor);
      if (c > lastIndex)
        lastIndex = c;
    }
    return lastIndex;
  }
  function flatten$flattenSuccessorsTo(_this__u8e3s4, seen, receiver) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var this_0 = _this__u8e3s4.successors_1;
    var destination = ArrayList_init_$Create$();
    var tmp0_iterator = this_0.iterator_jk1svi_k$();
    while (tmp0_iterator.hasNext_bitz1p_k$()) {
      var element = tmp0_iterator.next_20eer_k$();
      // Inline function 'nl.adaptivity.xmlutil.serialization.structure.flatten.flattenSuccessorsTo.<anonymous>' call
      if (!seen[element.elementIdx_1]) {
        destination.add_utx5q5_k$(element);
      }
    }
    var unseenSuccessors = destination;
    var tmp0_iterator_0 = unseenSuccessors.iterator_jk1svi_k$();
    while (tmp0_iterator_0.hasNext_bitz1p_k$()) {
      var successor = tmp0_iterator_0.next_20eer_k$();
      receiver.add_utx5q5_k$(successor);
      seen[successor.elementIdx_1] = true;
    }
    var tmp1_iterator = unseenSuccessors.iterator_jk1svi_k$();
    while (tmp1_iterator.hasNext_bitz1p_k$()) {
      var successor_0 = tmp1_iterator.next_20eer_k$();
      flatten$flattenSuccessorsTo(successor_0, seen, receiver);
    }
  }
  function fullFlatten$addTransitive(originalOrderNodes, node) {
    if (originalOrderNodes[node.elementIdx_1] == null) {
      originalOrderNodes[node.elementIdx_1] = node;
      var tmp0_iterator = node.successors_1.iterator_jk1svi_k$();
      while (tmp0_iterator.hasNext_bitz1p_k$()) {
        var next = tmp0_iterator.next_20eer_k$();
        fullFlatten$addTransitive(originalOrderNodes, next);
      }
    }
  }
  function sequenceStarts$lambda($beforeAny) {
    return function (it) {
      return !$beforeAny[it.elementIdx_1];
    };
  }
  function sequenceStarts$lambda_0($afterAny) {
    return function (it) {
      return !$afterAny[it.elementIdx_1];
    };
  }
  function fullFlatten$lambda(it) {
    return it.predecessors_1.isEmpty_y1axqb_k$();
  }
  function _get_children__my42wc_1($this) {
    // Inline function 'kotlin.getValue' call
    var this_0 = $this.children$delegate_1;
    children$factory_1();
    return this_0.get_value_j01efc_k$();
  }
  function XmlTypeDescriptor$children$delegate$lambda(this$0, $parentNamespace) {
    return function () {
      var tmp = 0;
      var tmp_0 = this$0.serialDescriptor_1.get_elementsCount_288r0x_k$();
      // Inline function 'kotlin.arrayOfNulls' call
      var tmp_1 = fillArrayVal(Array(tmp_0), null);
      while (tmp < tmp_0) {
        var tmp_2 = tmp;
        var tmp_3 = this$0.serialDescriptor_1.getElementDescriptor_ncda77_k$(tmp_2);
        var tmp0_safe_receiver = this$0.get_typeQname_gvxkmx_k$();
        var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : toNamespace(tmp0_safe_receiver);
        tmp_1[tmp_2] = new XmlTypeDescriptor(tmp_3, tmp1_elvis_lhs == null ? $parentNamespace : tmp1_elvis_lhs);
        tmp = tmp + 1 | 0;
      }
      return tmp_1;
    };
  }
  function XmlTypeDescriptor(serialDescriptor, parentNamespace) {
    this.serialDescriptor_1 = serialDescriptor;
    this.typeNameInfo_1 = getNameInfo(this.serialDescriptor_1, parentNamespace);
    var tmp = this;
    tmp.children$delegate_1 = lazy(XmlTypeDescriptor$children$delegate$lambda(this, parentNamespace));
  }
  protoOf(XmlTypeDescriptor).get_serialDescriptor_vvwkac_k$ = function () {
    return this.serialDescriptor_1;
  };
  protoOf(XmlTypeDescriptor).get_typeNameInfo_ievmo4_k$ = function () {
    return this.typeNameInfo_1;
  };
  protoOf(XmlTypeDescriptor).get_serialName_u2rqhk_k$ = function () {
    return this.serialDescriptor_1.get_serialName_u2rqhk_k$();
  };
  protoOf(XmlTypeDescriptor).get_typeQname_gvxkmx_k$ = function () {
    return this.typeNameInfo_1.get_annotatedName_g9piau_k$();
  };
  protoOf(XmlTypeDescriptor).get_elementsCount_288r0x_k$ = function () {
    return this.serialDescriptor_1.get_elementsCount_288r0x_k$();
  };
  protoOf(XmlTypeDescriptor).get_c1px32_k$ = function (index) {
    return _get_children__my42wc_1(this)[index];
  };
  protoOf(XmlTypeDescriptor).equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof XmlTypeDescriptor))
      THROW_CCE();
    if (!equals(this.serialDescriptor_1, other.serialDescriptor_1))
      return false;
    return this.typeNameInfo_1.equals(other.typeNameInfo_1);
  };
  protoOf(XmlTypeDescriptor).hashCode = function () {
    var result = hashCode(this.serialDescriptor_1);
    result = imul(31, result) + this.typeNameInfo_1.hashCode() | 0;
    return result;
  };
  function children$factory_1() {
    return getPropertyCallableRef('children', 1, KProperty1, function (receiver) {
      return _get_children__my42wc_1(receiver);
    }, null);
  }
  function getPlatformDefaultModule() {
    return get_EmptySerializersModuleLegacyJs();
  }
  function get_serialName(_this__u8e3s4) {
    var tmp0_safe_receiver = serializerOrNull(_this__u8e3s4);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'nl.adaptivity.xmlutil.serialization.impl.<get-serialName>.<anonymous>' call
      tmp = tmp0_safe_receiver.get_descriptor_wjt6a0_k$().get_serialName_u2rqhk_k$();
    }
    var tmp1_elvis_lhs = tmp;
    return tmp1_elvis_lhs == null ? replace(get_name(_this__u8e3s4), _Char___init__impl__6a9atx(36), _Char___init__impl__6a9atx(46)) : tmp1_elvis_lhs;
  }
  //region block: post-declaration
  protoOf(DocumentCompositeDecoder).decodeSerializableElement$default_j0zaoi_k$ = decodeSerializableElement$default;
  protoOf(DocumentCompositeDecoder).decodeNullableSerializableElement$default_q1b6sc_k$ = decodeNullableSerializableElement$default;
  protoOf(DecodeCommons).getNamespaceURI_859c43_k$ = getNamespaceURI;
  protoOf(DecodeCommons).delegateFormat_ffjb30_k$ = delegateFormat;
  protoOf(DecodeCommons).decodeSerializableValue_xpnpad_k$ = decodeSerializableValue;
  protoOf(DecodeCommons).decodeNullableSerializableValue_sc8iki_k$ = decodeNullableSerializableValue;
  protoOf(NullDecoder).decodeSerializableElement$default_j0zaoi_k$ = decodeSerializableElement$default;
  protoOf(NullDecoder).decodeNullableSerializableElement$default_q1b6sc_k$ = decodeNullableSerializableElement$default;
  protoOf(NullDecoder).decodeSequentially_xlblqy_k$ = decodeSequentially;
  protoOf(TagDecoderBase).decodeSerializableElement$default_j0zaoi_k$ = decodeSerializableElement$default;
  protoOf(TagDecoderBase).decodeNullableSerializableElement$default_q1b6sc_k$ = decodeNullableSerializableElement$default;
  protoOf(TagDecoderBase).decodeSequentially_xlblqy_k$ = decodeSequentially;
  protoOf(TagDecoderBase).decodeCollectionSize_l3mlkk_k$ = decodeCollectionSize;
  protoOf(TagDecoderBase).getNamespaceURI_859c43_k$ = getNamespaceURI;
  protoOf(TagDecoderBase).delegateFormat_ffjb30_k$ = delegateFormat;
  protoOf(AttributeMapDecoder).decodeSerializableValue_xpnpad_k$ = decodeSerializableValue;
  protoOf(AttributeMapDecoder).decodeNullableSerializableValue_sc8iki_k$ = decodeNullableSerializableValue;
  protoOf(XmlEncoder).beginCollection_9edss2_k$ = beginCollection;
  protoOf(XmlEncoder).encodeNullableSerializableValue_ibrab1_k$ = encodeNullableSerializableValue;
  protoOf(XmlEncoder).ensureNamespace_967ewy_k$ = ensureNamespace;
  protoOf(XmlEncoder).get_currentTypeName_57qp9n_k$ = get_currentTypeName;
  protoOf(XmlEncoder).delegateFormat_ffjb30_k$ = delegateFormat;
  protoOf(PrimitiveEncoder).encodeNotNullMark_415a1t_k$ = encodeNotNullMark;
  protoOf(PrimitiveEncoder).beginCollection_9edss2_k$ = beginCollection;
  protoOf(PrimitiveEncoder).encodeNullableSerializableValue_ibrab1_k$ = encodeNullableSerializableValue;
  protoOf(PrimitiveEncoder).ensureNamespace_967ewy_k$ = ensureNamespace;
  protoOf(PrimitiveEncoder).get_currentTypeName_57qp9n_k$ = get_currentTypeName;
  protoOf(PrimitiveEncoder).delegateFormat_ffjb30_k$ = delegateFormat;
  protoOf(TagEncoder).ensureNamespace_967ewy_k$ = ensureNamespace;
  protoOf(TagEncoder).get_currentTypeName_57qp9n_k$ = get_currentTypeName;
  protoOf(TagEncoder).delegateFormat_ffjb30_k$ = delegateFormat;
  protoOf(DefaultXmlSerializationPolicy).effectiveName$default_owheec_k$ = effectiveName$default;
  protoOf(DefaultXmlSerializationPolicy).get_defaultPrimitiveOutputKind_xh7b3w_k$ = get_defaultPrimitiveOutputKind;
  protoOf(DefaultXmlSerializationPolicy).get_defaultObjectOutputKind_gtu6d0_k$ = get_defaultObjectOutputKind;
  protoOf(DefaultXmlSerializationPolicy).defaultOutputKind_cvtlao_k$ = defaultOutputKind;
  protoOf(DefaultXmlSerializationPolicy).invalidOutputKind_bwpkf2_k$ = invalidOutputKind;
  protoOf(DefaultXmlSerializationPolicy).serialTypeNameToQName_tecixw_k$ = serialTypeNameToQName;
  protoOf(DefaultXmlSerializationPolicy).serialUseNameToQName_kw9l0h_k$ = serialUseNameToQName;
  protoOf(DefaultXmlSerializationPolicy).handleAttributeOrderConflict_l5t2w2_k$ = handleAttributeOrderConflict;
  protoOf(DefaultXmlSerializationPolicy).enumEncoding_gn3znf_k$ = enumEncoding;
  protoOf(DefaultXmlSerializationPolicy).attributeListDelimiters_mtw9o_k$ = attributeListDelimiters;
  protoOf(ChildCollector).polymorphicDefault_n864hv_k$ = polymorphicDefault;
  protoOf(DummyDecoder).decodeNullableSerializableValue_sc8iki_k$ = decodeNullableSerializableValue;
  protoOf(NamespaceCollectingXmlWriter$namespaceContext$1).getPrefixes_8uhuv8_k$ = getPrefixes;
  protoOf(NamespaceCollectingXmlWriter).startDocument$default_lmadgb_k$ = startDocument$default;
  protoOf(NamespaceCollectingXmlWriter).set_indent_os83lr_k$ = set_indent;
  protoOf(NamespaceCollectingXmlWriter).get_indent_etpsj9_k$ = get_indent;
  protoOf(NamespaceCollectingXmlWriter).setPrefix_clkvdo_k$ = setPrefix;
  protoOf(NamespaceCollectingXmlWriter).namespaceAttr_w2rp18_k$ = namespaceAttr;
  protoOf(NamespaceCollectingXmlWriter).namespaceAttr_b6cim8_k$ = namespaceAttr_0;
  protoOf(NamespaceCollectingXmlWriter).processingInstruction_tweoff_k$ = processingInstruction;
  protoOf(PrefixWrappingPolicy).effectiveName$default_owheec_k$ = effectiveName$default;
  protoOf(XmlDescriptor).get_isNullable_67sy7o_k$ = get_isNullable;
  protoOf(XmlDescriptor).get_kind_wop7ml_k$ = get_kind;
  protoOf(XmlDescriptor).get_isCData_z90sze_k$ = get_isCData;
  protoOf(XmlDescriptor).isElementOptional_heqq56_k$ = isElementOptional;
  protoOf(DetachedParent).copy$default_aw1ypn_k$ = copy$default;
  protoOf(DetachedParent).maybeOverrideSerializer_c4t2cf_k$ = maybeOverrideSerializer;
  protoOf(ParentInfo).copy$default_aw1ypn_k$ = copy$default;
  protoOf(ParentInfo).maybeOverrideSerializer_c4t2cf_k$ = maybeOverrideSerializer;
  protoOf(InjectedParentTag).copy$default_aw1ypn_k$ = copy$default;
  protoOf(InjectedParentTag).maybeOverrideSerializer_c4t2cf_k$ = maybeOverrideSerializer;
  //endregion
  //region block: init
  UNSET_ANNOTATION_VALUE = 'ZXC\x01VBNBVCXZ';
  MAXCHUNKSIZE = 16384;
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = XML_init_$Create$;
  _.$_$.b = Companion_getInstance_7;
  _.$_$.c = XmlInput;
  _.$_$.d = XML;
  _.$_$.e = XmlSerialName;
  _.$_$.f = XmlValue;
  //endregion
  return _;
}(module.exports, require('./kotlin-kotlin-stdlib.js'), require('./xmlutil-core.js'), require('./kotlinx-serialization-kotlinx-serialization-core.js')));

//# sourceMappingURL=xmlutil-serialization.js.map
