(function (_, kotlin_kotlin, kotlin_io_ktor_ktor_utils, kotlin_io_ktor_ktor_client_core, kotlin_io_ktor_ktor_http, kotlin_io_ktor_ktor_serialization, kotlin_io_ktor_ktor_io) {
  'use strict';
  //region block: imports
  var protoOf = kotlin_kotlin.$_$.wc;
  var classMeta = kotlin_kotlin.$_$.lb;
  var setMetadataFor = kotlin_kotlin.$_$.xc;
  var VOID = kotlin_kotlin.$_$.f;
  var CoroutineImpl = kotlin_kotlin.$_$.va;
  var Unit_instance = kotlin_kotlin.$_$.m5;
  var THROW_CCE = kotlin_kotlin.$_$.hi;
  var PipelineContext = kotlin_io_ktor_ktor_utils.$_$.g;
  var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.ha;
  var HttpResponseContainer = kotlin_io_ktor_ktor_client_core.$_$.o;
  var contentType = kotlin_io_ktor_ktor_http.$_$.d1;
  var suitableCharset = kotlin_io_ktor_ktor_serialization.$_$.f;
  var plus = kotlin_kotlin.$_$.v8;
  var toMutableSet = kotlin_kotlin.$_$.z9;
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.m;
  var Application_getInstance = kotlin_io_ktor_ktor_http.$_$.b;
  var register$default = kotlin_io_ktor_ktor_serialization.$_$.b;
  var Configuration = kotlin_io_ktor_ktor_serialization.$_$.c;
  var AttributeKey = kotlin_io_ktor_ktor_utils.$_$.l;
  var Phases_getInstance = kotlin_io_ktor_ktor_client_core.$_$.d;
  var Phases_getInstance_0 = kotlin_io_ktor_ktor_client_core.$_$.e;
  var HttpClientPlugin = kotlin_io_ktor_ktor_client_core.$_$.g;
  var objectMeta = kotlin_kotlin.$_$.vc;
  var toString = kotlin_kotlin.$_$.bd;
  var HttpHeaders_getInstance = kotlin_io_ktor_ktor_http.$_$.f;
  var accept = kotlin_io_ktor_ktor_client_core.$_$.k;
  var Collection = kotlin_kotlin.$_$.p5;
  var isInterface = kotlin_kotlin.$_$.gc;
  var OutgoingContent = kotlin_io_ktor_ktor_http.$_$.p;
  var getKClassFromExpression = kotlin_kotlin.$_$.d;
  var contentType_0 = kotlin_io_ktor_ktor_http.$_$.b1;
  var EmptyContent_getInstance = kotlin_io_ktor_ktor_client_core.$_$.f;
  var Unit = kotlin_kotlin.$_$.ti;
  var charset = kotlin_io_ktor_ktor_http.$_$.z;
  var Charsets_getInstance = kotlin_io_ktor_ktor_io.$_$.f;
  var ensureNotNull = kotlin_kotlin.$_$.zi;
  var NullBody_instance = kotlin_io_ktor_ktor_http.$_$.a;
  var equals = kotlin_kotlin.$_$.ob;
  var joinToString = kotlin_kotlin.$_$.a8;
  var ByteReadChannel = kotlin_io_ktor_ktor_io.$_$.f1;
  var collectionSizeOrDefault = kotlin_kotlin.$_$.n6;
  var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.l;
  var deserialize = kotlin_io_ktor_ktor_serialization.$_$.a;
  var Exception = kotlin_kotlin.$_$.wh;
  var Exception_init_$Init$ = kotlin_kotlin.$_$.m1;
  var captureStack = kotlin_kotlin.$_$.fb;
  var KtorSimpleLogger = kotlin_io_ktor_ktor_utils.$_$.f;
  var PrimitiveClasses_getInstance = kotlin_kotlin.$_$.c5;
  var HttpStatusCode = kotlin_io_ktor_ktor_http.$_$.s;
  var getKClass = kotlin_kotlin.$_$.e;
  var setOf = kotlin_kotlin.$_$.k9;
  var endsWith = kotlin_kotlin.$_$.xe;
  var startsWith = kotlin_kotlin.$_$.ag;
  var LinkedHashSet_init_$Create$ = kotlin_kotlin.$_$.x;
  //endregion
  //region block: pre-declaration
  setMetadataFor(ConverterRegistration, 'ConverterRegistration', classMeta);
  setMetadataFor(ContentNegotiation$Config$defaultMatcher$1, VOID, classMeta);
  setMetadataFor(ContentNegotiation$Plugin$install$slambda, 'ContentNegotiation$Plugin$install$slambda', classMeta, CoroutineImpl, VOID, VOID, VOID, VOID, [2]);
  setMetadataFor(ContentNegotiation$Plugin$install$slambda_1, 'ContentNegotiation$Plugin$install$slambda', classMeta, CoroutineImpl, VOID, VOID, VOID, VOID, [2]);
  setMetadataFor(Config, 'Config', classMeta, VOID, [Configuration], Config);
  setMetadataFor(Plugin, 'Plugin', objectMeta, VOID, [HttpClientPlugin]);
  setMetadataFor($convertRequestCOROUTINE$0, '$convertRequestCOROUTINE$0', classMeta, CoroutineImpl);
  setMetadataFor($convertResponseCOROUTINE$1, '$convertResponseCOROUTINE$1', classMeta, CoroutineImpl);
  setMetadataFor(ContentNegotiation, 'ContentNegotiation', classMeta, VOID, VOID, VOID, VOID, VOID, [2, 5]);
  setMetadataFor(ContentConverterException, 'ContentConverterException', classMeta, Exception);
  setMetadataFor(JsonContentTypeMatcher, 'JsonContentTypeMatcher', objectMeta);
  //endregion
  function get_LOGGER() {
    _init_properties_ContentNegotiation_kt__o183go();
    return LOGGER;
  }
  var LOGGER;
  function get_DefaultCommonIgnoredTypes() {
    _init_properties_ContentNegotiation_kt__o183go();
    return DefaultCommonIgnoredTypes;
  }
  var DefaultCommonIgnoredTypes;
  function ConverterRegistration(converter, contentTypeToSend, contentTypeMatcher) {
    this.e50_1 = converter;
    this.f50_1 = contentTypeToSend;
    this.g50_1 = contentTypeMatcher;
  }
  function defaultMatcher($this, pattern) {
    return new ContentNegotiation$Config$defaultMatcher$1(pattern);
  }
  function ContentNegotiation$Config$defaultMatcher$1($pattern) {
    this.h50_1 = $pattern;
  }
  protoOf(ContentNegotiation$Config$defaultMatcher$1).i50 = function (contentType) {
    return contentType.c2t(this.h50_1);
  };
  function ContentNegotiation$Plugin$install$slambda($plugin, resultContinuation) {
    this.r50_1 = $plugin;
    CoroutineImpl.call(this, resultContinuation);
  }
  protoOf(ContentNegotiation$Plugin$install$slambda).p37 = function ($this$intercept, it, $completion) {
    var tmp = this.q37($this$intercept, it, $completion);
    tmp.jd_1 = Unit_instance;
    tmp.kd_1 = null;
    return tmp.ud();
  };
  protoOf(ContentNegotiation$Plugin$install$slambda).um = function (p1, p2, $completion) {
    var tmp = p1 instanceof PipelineContext ? p1 : THROW_CCE();
    return this.p37(tmp, !(p2 == null) ? p2 : THROW_CCE(), $completion);
  };
  protoOf(ContentNegotiation$Plugin$install$slambda).ud = function () {
    var suspendResult = this.jd_1;
    $sm: do
      try {
        var tmp = this.hd_1;
        switch (tmp) {
          case 0:
            this.id_1 = 3;
            this.hd_1 = 1;
            suspendResult = this.r50_1.y50(this.s50_1.m2q_1, this.s50_1.p2p(), this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 1:
            this.u50_1 = suspendResult;
            var tmp_0 = this;
            var tmp_1;
            if (this.u50_1 == null) {
              return Unit_instance;
            } else {
              tmp_1 = this.u50_1;
            }

            tmp_0.v50_1 = tmp_1;
            this.hd_1 = 2;
            suspendResult = this.s50_1.q2p(this.v50_1, this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 2:
            return Unit_instance;
          case 3:
            throw this.kd_1;
        }
      } catch ($p) {
        var e = $p;
        if (this.id_1 === 3) {
          throw e;
        } else {
          this.hd_1 = this.id_1;
          this.kd_1 = e;
        }
      }
     while (true);
  };
  protoOf(ContentNegotiation$Plugin$install$slambda).q37 = function ($this$intercept, it, completion) {
    var i = new ContentNegotiation$Plugin$install$slambda(this.r50_1, completion);
    i.s50_1 = $this$intercept;
    i.t50_1 = it;
    return i;
  };
  function ContentNegotiation$Plugin$install$slambda_0($plugin, resultContinuation) {
    var i = new ContentNegotiation$Plugin$install$slambda($plugin, resultContinuation);
    var l = function ($this$intercept, it, $completion) {
      return i.p37($this$intercept, it, $completion);
    };
    l.$arity = 2;
    return l;
  }
  function ContentNegotiation$Plugin$install$slambda_1($plugin, resultContinuation) {
    this.h51_1 = $plugin;
    CoroutineImpl.call(this, resultContinuation);
  }
  protoOf(ContentNegotiation$Plugin$install$slambda_1).j38 = function ($this$intercept, _name_for_destructuring_parameter_0__wldtmu, $completion) {
    var tmp = this.k38($this$intercept, _name_for_destructuring_parameter_0__wldtmu, $completion);
    tmp.jd_1 = Unit_instance;
    tmp.kd_1 = null;
    return tmp.ud();
  };
  protoOf(ContentNegotiation$Plugin$install$slambda_1).um = function (p1, p2, $completion) {
    var tmp = p1 instanceof PipelineContext ? p1 : THROW_CCE();
    return this.j38(tmp, p2 instanceof HttpResponseContainer ? p2 : THROW_CCE(), $completion);
  };
  protoOf(ContentNegotiation$Plugin$install$slambda_1).ud = function () {
    var suspendResult = this.jd_1;
    $sm: do
      try {
        var tmp = this.hd_1;
        switch (tmp) {
          case 0:
            this.id_1 = 3;
            this.k51_1 = this.j51_1.y6();
            this.l51_1 = this.j51_1.z6();
            var tmp_0 = this;
            var tmp0_elvis_lhs = contentType(this.i51_1.m2q_1.w37());
            var tmp_1;
            if (tmp0_elvis_lhs == null) {
              this.i51_1;
              get_LOGGER().h2r('Response doesn\'t have "Content-Type" header, skipping ContentNegotiation plugin');
              return Unit_instance;
            } else {
              tmp_1 = tmp0_elvis_lhs;
            }

            tmp_0.m51_1 = tmp_1;
            this.n51_1 = suitableCharset(this.i51_1.m2q_1.f3b().k2x());
            this.hd_1 = 1;
            suspendResult = this.h51_1.r51(this.i51_1.m2q_1.f3b().i3b(), this.k51_1, this.l51_1, this.m51_1, this.n51_1, this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 1:
            this.o51_1 = suspendResult;
            var tmp_2 = this;
            var tmp_3;
            if (this.o51_1 == null) {
              return Unit_instance;
            } else {
              tmp_3 = this.o51_1;
            }

            tmp_2.p51_1 = tmp_3;
            this.q51_1 = new HttpResponseContainer(this.k51_1, this.p51_1);
            this.hd_1 = 2;
            suspendResult = this.i51_1.q2p(this.q51_1, this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 2:
            return Unit_instance;
          case 3:
            throw this.kd_1;
        }
      } catch ($p) {
        var e = $p;
        if (this.id_1 === 3) {
          throw e;
        } else {
          this.hd_1 = this.id_1;
          this.kd_1 = e;
        }
      }
     while (true);
  };
  protoOf(ContentNegotiation$Plugin$install$slambda_1).k38 = function ($this$intercept, _name_for_destructuring_parameter_0__wldtmu, completion) {
    var i = new ContentNegotiation$Plugin$install$slambda_1(this.h51_1, completion);
    i.i51_1 = $this$intercept;
    i.j51_1 = _name_for_destructuring_parameter_0__wldtmu;
    return i;
  };
  function ContentNegotiation$Plugin$install$slambda_2($plugin, resultContinuation) {
    var i = new ContentNegotiation$Plugin$install$slambda_1($plugin, resultContinuation);
    var l = function ($this$intercept, _name_for_destructuring_parameter_0__wldtmu, $completion) {
      return i.j38($this$intercept, _name_for_destructuring_parameter_0__wldtmu, $completion);
    };
    l.$arity = 2;
    return l;
  }
  function Config() {
    this.s51_1 = toMutableSet(plus(get_DefaultIgnoredTypes(), get_DefaultCommonIgnoredTypes()));
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.t51_1 = ArrayList_init_$Create$();
  }
  protoOf(Config).c34 = function (contentType, converter, configuration) {
    var matcher = contentType.equals(Application_getInstance().v2r_1) ? JsonContentTypeMatcher_instance : defaultMatcher(this, contentType);
    this.u51(contentType, converter, matcher, configuration);
  };
  protoOf(Config).u51 = function (contentTypeToSend, converter, contentTypeMatcher, configuration) {
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.contracts.contract' call
    configuration(converter);
    var registration = new ConverterRegistration(converter, contentTypeToSend, contentTypeMatcher);
    this.t51_1.i1(registration);
  };
  function Plugin() {
    Plugin_instance = this;
    this.v51_1 = new AttributeKey('ContentNegotiation');
  }
  protoOf(Plugin).s2 = function () {
    return this.v51_1;
  };
  protoOf(Plugin).w51 = function (block) {
    // Inline function 'kotlin.apply' call
    var this_0 = new Config();
    // Inline function 'kotlin.contracts.contract' call
    block(this_0);
    var config = this_0;
    return new ContentNegotiation(config.t51_1, config.s51_1);
  };
  protoOf(Plugin).a3a = function (block) {
    return this.w51(block);
  };
  protoOf(Plugin).x51 = function (plugin, scope) {
    var tmp = Phases_getInstance().v3f_1;
    scope.v36_1.q2q(tmp, ContentNegotiation$Plugin$install$slambda_0(plugin, null));
    var tmp_0 = Phases_getInstance_0().v39_1;
    scope.w36_1.q2q(tmp_0, ContentNegotiation$Plugin$install$slambda_2(plugin, null));
  };
  protoOf(Plugin).b3a = function (plugin, scope) {
    return this.x51(plugin instanceof ContentNegotiation ? plugin : THROW_CCE(), scope);
  };
  var Plugin_instance;
  function Plugin_getInstance() {
    if (Plugin_instance == null)
      new Plugin();
    return Plugin_instance;
  }
  function ContentNegotiation$convertRequest$lambda(it) {
    return toString(it.e50_1);
  }
  function $convertRequestCOROUTINE$0(_this__u8e3s4, request, body, resultContinuation) {
    CoroutineImpl.call(this, resultContinuation);
    this.g52_1 = _this__u8e3s4;
    this.h52_1 = request;
    this.i52_1 = body;
  }
  protoOf($convertRequestCOROUTINE$0).ud = function () {
    var suspendResult = this.jd_1;
    $sm: do
      try {
        var tmp = this.hd_1;
        switch (tmp) {
          case 0:
            this.id_1 = 7;
            var tmp0_iterator = this.g52_1.w50_1.w();
            while (tmp0_iterator.f()) {
              var element = tmp0_iterator.e();
              l$ret$1: do {
                get_LOGGER().h2r('Adding Accept=' + element.f50_1.y2s_1 + ' header for ' + this.h52_1.v38_1);
                if (this.h52_1.x38_1.v2n(HttpHeaders_getInstance().h2t_1, element.f50_1.toString())) {
                  break l$ret$1;
                }
                accept(this.h52_1, element.f50_1);
              }
               while (false);
            }

            var tmp_0;
            var tmp_1 = this.i52_1;
            if (tmp_1 instanceof OutgoingContent) {
              tmp_0 = true;
            } else {
              var tmp$ret$2;
              l$ret$3: do {
                var this_0 = this.g52_1.x50_1;
                var tmp_2;
                if (isInterface(this_0, Collection)) {
                  tmp_2 = this_0.c1();
                } else {
                  tmp_2 = false;
                }
                if (tmp_2) {
                  tmp$ret$2 = false;
                  break l$ret$3;
                }
                var tmp0_iterator_0 = this_0.w();
                while (tmp0_iterator_0.f()) {
                  var element_0 = tmp0_iterator_0.e();
                  if (element_0.g7(this.i52_1)) {
                    tmp$ret$2 = true;
                    break l$ret$3;
                  }
                }
                tmp$ret$2 = false;
              }
               while (false);
              tmp_0 = tmp$ret$2;
            }

            if (tmp_0) {
              get_LOGGER().h2r('Body type ' + getKClassFromExpression(this.i52_1) + ' is in ignored types. ' + ('Skipping ContentNegotiation for ' + this.h52_1.v38_1 + '.'));
              return null;
            }

            var tmp_3 = this;
            var tmp0_elvis_lhs = contentType_0(this.h52_1);
            var tmp_4;
            if (tmp0_elvis_lhs == null) {
              this.g52_1;
              get_LOGGER().h2r("Request doesn't have Content-Type header. Skipping ContentNegotiation for " + this.h52_1.v38_1 + '.');
              return null;
            } else {
              tmp_4 = tmp0_elvis_lhs;
            }

            tmp_3.j52_1 = tmp_4;
            var tmp_5 = this.i52_1;
            if (tmp_5 instanceof Unit) {
              get_LOGGER().h2r('Sending empty body for ' + this.h52_1.v38_1);
              this.h52_1.x38_1.a2o(HttpHeaders_getInstance().z2t_1);
              return EmptyContent_getInstance();
            }

            var tmp_6 = this;
            var this_1 = this.g52_1.w50_1;
            var destination = ArrayList_init_$Create$();
            var tmp0_iterator_1 = this_1.w();
            while (tmp0_iterator_1.f()) {
              var element_1 = tmp0_iterator_1.e();
              if (element_1.g50_1.i50(this.j52_1)) {
                destination.i1(element_1);
              }
            }

            var tmp_7;
            if (!destination.c1()) {
              tmp_7 = destination;
            } else {
              tmp_7 = null;
            }

            var tmp1_elvis_lhs = tmp_7;
            var tmp_8;
            if (tmp1_elvis_lhs == null) {
              this.g52_1;
              get_LOGGER().h2r('None of the registered converters match request Content-Type=' + this.j52_1 + '. ' + ('Skipping ContentNegotiation for ' + this.h52_1.v38_1 + '.'));
              return null;
            } else {
              tmp_8 = tmp1_elvis_lhs;
            }

            tmp_6.k52_1 = tmp_8;
            if (this.h52_1.a3v() == null) {
              get_LOGGER().h2r('Request has unknown body type. Skipping ContentNegotiation for ' + this.h52_1.v38_1 + '.');
              return null;
            }

            this.h52_1.x38_1.a2o(HttpHeaders_getInstance().z2t_1);
            this.hd_1 = 1;
            continue $sm;
          case 1:
            var tmp_9 = this;
            tmp_9.m52_1 = this.k52_1;
            this.n52_1 = this.m52_1.w();
            this.hd_1 = 2;
            continue $sm;
          case 2:
            if (!this.n52_1.f()) {
              this.hd_1 = 5;
              continue $sm;
            }

            this.o52_1 = this.n52_1.e();
            var tmp_10 = this;
            tmp_10.p52_1 = this.o52_1;
            this.hd_1 = 3;
            var tmp0_elvis_lhs_0 = charset(this.j52_1);
            var tmp_11 = tmp0_elvis_lhs_0 == null ? Charsets_getInstance().z2h_1 : tmp0_elvis_lhs_0;
            var tmp_12 = ensureNotNull(this.h52_1.a3v());
            var this_2 = this.i52_1;
            var tmp_13;
            if (!equals(this_2, NullBody_instance)) {
              tmp_13 = this_2;
            } else {
              tmp_13 = null;
            }

            suspendResult = this.p52_1.e50_1.f34(this.j52_1, tmp_11, tmp_12, tmp_13, this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 3:
            var result = suspendResult;
            if (!(result == null)) {
              get_LOGGER().h2r('Converted request body using ' + this.p52_1.e50_1 + ' for ' + this.h52_1.v38_1);
            }

            var result_0 = result;
            if (!(result_0 == null)) {
              this.l52_1 = result_0;
              this.hd_1 = 6;
              continue $sm;
            } else {
              this.hd_1 = 4;
              continue $sm;
            }

          case 4:
            this.hd_1 = 2;
            continue $sm;
          case 5:
            this.l52_1 = null;
            if (false) {
              this.hd_1 = 1;
              continue $sm;
            }

            this.hd_1 = 6;
            continue $sm;
          case 6:
            var tmp2_elvis_lhs = this.l52_1;
            var tmp_14;
            if (tmp2_elvis_lhs == null) {
              var tmp_15 = "Can't convert " + toString(this.i52_1) + ' with contentType ' + this.j52_1 + ' using converters ';
              throw new ContentConverterException(tmp_15 + joinToString(this.k52_1, VOID, VOID, VOID, VOID, VOID, ContentNegotiation$convertRequest$lambda));
            } else {
              tmp_14 = tmp2_elvis_lhs;
            }

            var serializedContent = tmp_14;
            return serializedContent;
          case 7:
            throw this.kd_1;
        }
      } catch ($p) {
        var e = $p;
        if (this.id_1 === 7) {
          throw e;
        } else {
          this.hd_1 = this.id_1;
          this.kd_1 = e;
        }
      }
     while (true);
  };
  function $convertResponseCOROUTINE$1(_this__u8e3s4, requestUrl, info, body, responseContentType, charset, resultContinuation) {
    CoroutineImpl.call(this, resultContinuation);
    this.y52_1 = _this__u8e3s4;
    this.z52_1 = requestUrl;
    this.a53_1 = info;
    this.b53_1 = body;
    this.c53_1 = responseContentType;
    this.d53_1 = charset;
  }
  protoOf($convertResponseCOROUTINE$1).ud = function () {
    var suspendResult = this.jd_1;
    $sm: do
      try {
        var tmp = this.hd_1;
        switch (tmp) {
          case 0:
            this.id_1 = 2;
            var tmp_0 = this.b53_1;
            if (!isInterface(tmp_0, ByteReadChannel)) {
              get_LOGGER().h2r('Response body is already transformed. Skipping ContentNegotiation for ' + this.z52_1 + '.');
              return null;
            }

            if (this.y52_1.x50_1.a1(this.a53_1.c2r_1)) {
              get_LOGGER().h2r('Response body type ' + this.a53_1.c2r_1 + ' is in ignored types. ' + ('Skipping ContentNegotiation for ' + this.z52_1 + '.'));
              return null;
            }

            var tmp_1 = this;
            var this_0 = this.y52_1.w50_1;
            var destination = ArrayList_init_$Create$();
            var tmp0_iterator = this_0.w();
            while (tmp0_iterator.f()) {
              var element = tmp0_iterator.e();
              if (element.g50_1.i50(this.c53_1)) {
                destination.i1(element);
              }
            }

            var destination_0 = ArrayList_init_$Create$_0(collectionSizeOrDefault(destination, 10));
            var tmp0_iterator_0 = destination.w();
            while (tmp0_iterator_0.f()) {
              var item = tmp0_iterator_0.e();
              destination_0.i1(item.e50_1);
            }

            var tmp_2;
            if (!destination_0.c1()) {
              tmp_2 = destination_0;
            } else {
              tmp_2 = null;
            }

            var tmp0_elvis_lhs = tmp_2;
            var tmp_3;
            if (tmp0_elvis_lhs == null) {
              this.y52_1;
              get_LOGGER().h2r('None of the registered converters match response with Content-Type=' + this.c53_1 + '. ' + ('Skipping ContentNegotiation for ' + this.z52_1 + '.'));
              return null;
            } else {
              tmp_3 = tmp0_elvis_lhs;
            }

            tmp_1.e53_1 = tmp_3;
            this.hd_1 = 1;
            suspendResult = deserialize(this.e53_1, this.b53_1, this.a53_1, this.d53_1, this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 1:
            var result = suspendResult;
            if (!isInterface(result, ByteReadChannel)) {
              get_LOGGER().h2r('Response body was converted to ' + getKClassFromExpression(result) + ' for ' + this.z52_1 + '.');
            }

            return result;
          case 2:
            throw this.kd_1;
        }
      } catch ($p) {
        var e = $p;
        if (this.id_1 === 2) {
          throw e;
        } else {
          this.hd_1 = this.id_1;
          this.kd_1 = e;
        }
      }
     while (true);
  };
  function ContentNegotiation(registrations, ignoredTypes) {
    Plugin_getInstance();
    this.w50_1 = registrations;
    this.x50_1 = ignoredTypes;
  }
  protoOf(ContentNegotiation).y50 = function (request, body, $completion) {
    var tmp = new $convertRequestCOROUTINE$0(this, request, body, $completion);
    tmp.jd_1 = Unit_instance;
    tmp.kd_1 = null;
    return tmp.ud();
  };
  protoOf(ContentNegotiation).r51 = function (requestUrl, info, body, responseContentType, charset, $completion) {
    var tmp = new $convertResponseCOROUTINE$1(this, requestUrl, info, body, responseContentType, charset, $completion);
    tmp.jd_1 = Unit_instance;
    tmp.kd_1 = null;
    return tmp.ud();
  };
  function ContentConverterException(message) {
    Exception_init_$Init$(message, this);
    captureStack(this, ContentConverterException);
  }
  var properties_initialized_ContentNegotiation_kt_1ayduy;
  function _init_properties_ContentNegotiation_kt__o183go() {
    if (!properties_initialized_ContentNegotiation_kt_1ayduy) {
      properties_initialized_ContentNegotiation_kt_1ayduy = true;
      LOGGER = KtorSimpleLogger('io.ktor.client.plugins.contentnegotiation.ContentNegotiation');
      DefaultCommonIgnoredTypes = setOf([PrimitiveClasses_getInstance().k8(), PrimitiveClasses_getInstance().g8(), getKClass(HttpStatusCode), getKClass(ByteReadChannel), getKClass(OutgoingContent)]);
    }
  }
  function JsonContentTypeMatcher() {
  }
  protoOf(JsonContentTypeMatcher).i50 = function (contentType) {
    if (contentType.c2t(Application_getInstance().v2r_1)) {
      return true;
    }
    var value = contentType.b2t().toString();
    return startsWith(value, 'application/') ? endsWith(value, '+json') : false;
  };
  var JsonContentTypeMatcher_instance;
  function JsonContentTypeMatcher_getInstance() {
    return JsonContentTypeMatcher_instance;
  }
  function get_DefaultIgnoredTypes() {
    _init_properties_DefaultIgnoredTypesJs_kt__rjtdk1();
    return DefaultIgnoredTypes;
  }
  var DefaultIgnoredTypes;
  var properties_initialized_DefaultIgnoredTypesJs_kt_65g2xt;
  function _init_properties_DefaultIgnoredTypesJs_kt__rjtdk1() {
    if (!properties_initialized_DefaultIgnoredTypesJs_kt_65g2xt) {
      properties_initialized_DefaultIgnoredTypesJs_kt_65g2xt = true;
      // Inline function 'kotlin.collections.mutableSetOf' call
      DefaultIgnoredTypes = LinkedHashSet_init_$Create$();
    }
  }
  //region block: post-declaration
  protoOf(Config).d34 = register$default;
  //endregion
  //region block: init
  JsonContentTypeMatcher_instance = new JsonContentTypeMatcher();
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = Plugin_getInstance;
  //endregion
  return _;
}(module.exports, require('./kotlin-kotlin-stdlib.js'), require('./ktor-ktor-utils.js'), require('./ktor-ktor-client-core.js'), require('./ktor-ktor-http.js'), require('./ktor-ktor-serialization.js'), require('./ktor-ktor-io.js')));

//# sourceMappingURL=ktor-ktor-client-content-negotiation.js.map
