private fun MemberDescriptor . hasNoActualWithDiagnostic ( compatibility : Map < K1ExpectActualCompatibility < MemberDescriptor > , List < MemberDescriptor > > ) : Boolean

{ <EOL> return compatibility . values . flatMapTo ( hashSetOf ( ) ) { it } . all { actual -> <EOL> val expectedOnes = ExpectedActualResolver . findExpectedForActual ( actual , onlyFromThisModule ( module ) ) <EOL> expectedOnes != null && Compatible in expectedOnes . keys <EOL> } <EOL> }


private fun ExpectActualTracker . reportExpectActual ( expected : MemberDescriptor , actualMembers : Sequence < MemberDescriptor > )

{ <EOL> if ( this is ExpectActualTracker . DoNothing ) return <EOL> val expectedFile = sourceFile ( expected ) ? : return <EOL> for ( actual in actualMembers ) { <EOL> val actualFile = sourceFile ( actual ) ? : continue <EOL> report ( expectedFile = expectedFile , actualFile = actualFile ) <EOL> } <EOL> }


private fun sourceFile ( descriptor : MemberDescriptor ) : File ?

{ <EOL> val containingFile = descriptor . source . containingFile as? PsiSourceFile ? : return null <EOL> return VfsUtilCore . virtualToIoFile ( containingFile . psiFile . virtualFile ) <EOL> }


private fun checkActualDeclarationHasExpected ( reportOn : KtNamedDeclaration , descriptor : MemberDescriptor , checkActualModifier : Boolean , context : DeclarationCheckerContext , moduleVisibilityFilter : ModuleFilter )

{ <EOL> val trace = context . trace <EOL> val compatibility = ExpectedActualResolver <EOL> . findExpectedForActual ( descriptor , moduleVisibilityFilter , shouldCheckAbsenceOfDefaultParamsInActual = true ) <EOL> ? : return <EOL> checkAmbiguousExpects ( compatibility , trace , reportOn , descriptor ) <EOL> if ( checkActualModifier && descriptor . containingDeclaration !is PackageFragmentDescriptor && compatibility . any { it . key . isCompatibleOrWeaklyIncompatible } ) { <EOL> reportMissingActualModifier ( descriptor , reportOn , trace ) <EOL> } <EOL> if ( ! reportOn . hasActualModifier ( ) && compatibility . allStrongIncompatibilities ( ) ) return <EOL> val singleIncompatibility = compatibility . keys . firstOrNull ( ) <EOL> if ( singleIncompatibility is Incompatible . ClassScopes ) { <EOL> assert ( descriptor is ClassDescriptor || descriptor is TypeAliasDescriptor ) { <EOL> "<STR_LIT>" <EOL> } <EOL> fun hasSingleActualSuspect ( expectedWithIncompatibility : Pair < MemberDescriptor , Map < Incompatible < MemberDescriptor > , Collection < MemberDescriptor > > > ) : Boolean { <EOL> val ( expectedMember , incompatibility ) = expectedWithIncompatibility <EOL> val actualMember = incompatibility . values . singleOrNull ( ) ? . singleOrNull ( ) <EOL> return actualMember != null && <EOL> actualMember . isExplicitActualDeclaration ( ) && <EOL> ! incompatibility . allStrongIncompatibilities ( ) && <EOL> ExpectedActualResolver . findExpectedForActual ( actualMember , onlyFromThisModule ( expectedMember . module ) ) ? . values ? . singleOrNull ( ) ? . singleOrNull ( ) == expectedMember <EOL> } <EOL> val nonTrivialUnfulfilled = singleIncompatibility . unfulfilled . filterNot ( :: hasSingleActualSuspect ) <EOL> if ( nonTrivialUnfulfilled . isNotEmpty ( ) ) { <EOL> val classDescriptor = <EOL> ( descriptor as? TypeAliasDescriptor ) ? . expandedType ? . constructor ? . declarationDescriptor as? ClassDescriptor <EOL> ? : ( descriptor as ClassDescriptor ) <EOL> trace . report ( Errors . NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS . on ( reportOn , classDescriptor , nonTrivialUnfulfilled ) ) <EOL> } <EOL> } else if ( Compatible !in compatibility ) { <EOL> assert ( compatibility . keys . all { it is Incompatible } ) <EOL> @ Suppress ( "<STR_LIT:UNCHECKED_CAST>" ) <EOL> val incompatibility = compatibility as Map < Incompatible < MemberDescriptor > , Collection < MemberDescriptor > > <EOL> if ( reportOn is KtFunction && incompatibility . keys . any { it is Incompatible . ActualFunctionWithDefaultParameters } ) { <EOL> trace . report ( Errors . ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS . on ( reportOn ) ) <EOL> } else { <EOL> trace . report ( Errors . ACTUAL_WITHOUT_EXPECT . on ( reportOn , descriptor , incompatibility ) ) <EOL> } <EOL> } else { <EOL> val expected = compatibility [ Compatible ] ! ! . first ( ) <EOL> if ( expected is ClassDescriptor && expected . kind == ClassKind . ANNOTATION_CLASS ) { <EOL> val actualConstructor = <EOL> ( descriptor as? ClassDescriptor ) ? . constructors ? . singleOrNull ( ) <EOL> ? : ( descriptor as? TypeAliasDescriptor ) ? . constructors ? . singleOrNull ( ) ? . underlyingConstructorDescriptor <EOL> val expectedConstructor = expected . constructors . singleOrNull ( ) <EOL> if ( expectedConstructor != null && actualConstructor != null ) { <EOL> checkAnnotationConstructors ( expectedConstructor , actualConstructor , trace , reportOn ) <EOL> } <EOL> checkOptInAnnotation ( reportOn , descriptor , expected , context ) <EOL> } <EOL> } <EOL> val expectSingleCandidate = ( compatibility [ Compatible ] ? : compatibility . values . singleOrNull ( ) ) ? . singleOrNull ( ) <EOL> if ( expectSingleCandidate != null ) { <EOL> checkIfExpectHasDefaultArgumentsAndActualizedWithTypealias ( expectSingleCandidate , reportOn , context ) <EOL> checkAnnotationsMatch ( expectSingleCandidate , descriptor , reportOn , context ) <EOL> } <EOL> }


private fun checkAmbiguousExpects ( compatibility : Map < K1ExpectActualCompatibility < MemberDescriptor > , List < MemberDescriptor > > , trace : BindingTrace , reportOn : KtNamedDeclaration , descriptor : MemberDescriptor )

{ <EOL> val filesWithAtLeastWeaklyCompatibleExpects = compatibility . asSequence ( ) <EOL> . filter { ( compatibility , _ ) -> <EOL> compatibility . isCompatibleOrWeaklyIncompatible <EOL> } <EOL> . map { ( _ , members ) -> members } <EOL> . flatten ( ) <EOL> . map { it . module } <EOL> . sortedBy { it . name . asString ( ) } <EOL> . toList ( ) <EOL> if ( filesWithAtLeastWeaklyCompatibleExpects . size > <NUM_LIT:1> ) { <EOL> trace . report ( Errors . AMBIGUOUS_EXPECTS . on ( reportOn , descriptor , filesWithAtLeastWeaklyCompatibleExpects ) ) <EOL> } <EOL> }


private fun requireActualModifier ( descriptor : MemberDescriptor ) : Boolean

{ <EOL> return ! descriptor . isAnnotationConstructor ( ) && <EOL> ! descriptor . isPrimaryConstructorOfInlineClass ( ) && <EOL> ! isUnderlyingPropertyOfInlineClass ( descriptor ) <EOL> }


private fun isUnderlyingPropertyOfInlineClass ( descriptor : MemberDescriptor ) : Boolean

{ <EOL> return descriptor is PropertyDescriptor && descriptor . isUnderlyingPropertyOfInlineClass ( ) <EOL> }


private fun MemberDescriptor . isExplicitActualDeclaration ( ) : Boolean

= <EOL> when ( this ) { <EOL> is ConstructorDescriptor -> DescriptorToSourceUtils . getSourceFromDescriptor ( this ) is KtConstructor < * > <EOL> is CallableMemberDescriptor -> kind == CallableMemberDescriptor . Kind . DECLARATION <EOL> else -> true <EOL> }


private fun checkAnnotationConstructors ( expected : ConstructorDescriptor , actual : ConstructorDescriptor , trace : BindingTrace , reportOn : PsiElement )

{ <EOL> for ( expectedParameterDescriptor in expected . valueParameters ) { <EOL> val actualParameterDescriptor = actual . valueParameters . first { it . name == expectedParameterDescriptor . name } <EOL> if ( expectedParameterDescriptor . declaresDefaultValue ( ) && actualParameterDescriptor . declaresDefaultValue ( ) ) { <EOL> val expectedParameter = <EOL> DescriptorToSourceUtils . descriptorToDeclaration ( expectedParameterDescriptor ) as? KtParameter ? : continue <EOL> val expectedValue = trace . bindingContext . get ( BindingContext . COMPILE_TIME_VALUE , expectedParameter . defaultValue ) <EOL> ? . toConstantValue ( expectedParameterDescriptor . type ) <EOL> val actualValue = <EOL> getActualAnnotationParameterValue ( actualParameterDescriptor , trace . bindingContext , expectedParameterDescriptor . type ) <EOL> if ( expectedValue != actualValue ) { <EOL> val ktParameter = DescriptorToSourceUtils . descriptorToDeclaration ( actualParameterDescriptor ) <EOL> val target = ( ktParameter as? KtParameter ) ? . defaultValue ? : ( reportOn as? KtTypeAlias ) ? . nameIdentifier ? : reportOn <EOL> trace . report ( Errors . ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE . on ( target , actualParameterDescriptor ) ) <EOL> } <EOL> } <EOL> } <EOL> }


private fun getActualAnnotationParameterValue ( actualParameter : ValueParameterDescriptor , bindingContext : BindingContext , expectedType : KotlinType ) : ConstantValue < * > ?

{ <EOL> val declaration = DescriptorToSourceUtils . descriptorToDeclaration ( actualParameter ) <EOL> if ( declaration is KtParameter ) { <EOL> return bindingContext . get ( BindingContext . COMPILE_TIME_VALUE , declaration . defaultValue ) ? . toConstantValue ( expectedType ) <EOL> } <EOL> for ( extractor in argumentExtractors ) { <EOL> extractor . extractDefaultValue ( actualParameter , expectedType ) ? . let { return it } <EOL> } <EOL> return null <EOL> }


private fun checkOptInAnnotation ( reportOn : KtNamedDeclaration , descriptor : MemberDescriptor , expectDescriptor : MemberDescriptor , context : DeclarationCheckerContext , )

{ <EOL> if ( context . languageVersionSettings . supportsFeature ( LanguageFeature . MultiplatformRestrictions ) && descriptor is ClassDescriptor && descriptor . kind == ClassKind . ANNOTATION_CLASS && descriptor . annotations . hasAnnotation ( OptInNames . REQUIRES_OPT_IN_FQ_NAME ) && ! expectDescriptor . annotations . hasAnnotation ( OptionalAnnotationUtil . OPTIONAL_EXPECTATION_FQ_NAME ) ) { <EOL> context . trace . report ( Errors . EXPECT_ACTUAL_OPT_IN_ANNOTATION . on ( reportOn ) ) <EOL> } <EOL> }


private fun checkAnnotationsMatch ( expectDescriptor : MemberDescriptor , actualDescriptor : MemberDescriptor , reportOn : KtNamedDeclaration , context : DeclarationCheckerContext )

{ <EOL> if ( ! context . languageVersionSettings . supportsFeature ( LanguageFeature . MultiplatformRestrictions ) ) return <EOL> val matchingContext = ClassicExpectActualMatchingContext ( actualDescriptor . module ) <EOL> val incompatibility = <EOL> K1AbstractExpectActualAnnotationMatchChecker . areAnnotationsCompatible ( expectDescriptor , actualDescriptor , matchingContext ) ? : return <EOL> val actualAnnotationTargetSourceElement = ( incompatibility . actualAnnotationTargetElement as ClassicSourceElement ) . element <EOL> context . trace . report ( Errors . ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT . on ( reportOn , incompatibility . expectSymbol as DeclarationDescriptor , incompatibility . actualSymbol as DeclarationDescriptor , Optional . ofNullable ( actualAnnotationTargetSourceElement ) , incompatibility . type . mapAnnotationType { it . annotationSymbol as AnnotationDescriptor } ) ) <EOL> }


fun Map < out K1ExpectActualCompatibility < MemberDescriptor > , Collection < MemberDescriptor > > . allStrongIncompatibilities ( ) : Boolean

= <EOL> this . keys . all { it is Incompatible . StrongIncompatible }


{ <EOL> return UUID . randomUUID ( ) . mostSignificantBits <EOL> }


operator fun getValue ( t : Any ? , p : KProperty < * > )

= <NUM_LIT:1>


operator fun D1 . setValue ( t : Any ? , p : KProperty < * > , v : Int )


operator fun setValue ( t : Any ? , p : KProperty < * > , v : Int )


operator fun D2 . getValue ( t : Any ? , p : KProperty < * > )

= <NUM_LIT:1>


operator fun D2 . provideDelegate ( p : Any ? , k : Any )

= this


operator fun provideDelegate ( p : Any ? , k : Any )

= this


override fun doMultiFileTest ( wholeFile : File , files : List < TestFile > )

{ <EOL> setupEnvironment ( files ) <EOL> loadMultiFiles ( files ) <EOL> doTest ( wholeFile , files ) <EOL> }


private fun setupEnvironment ( files : List < TestFile > )

{ <EOL> val jdkKind = getTestJdkKind ( files ) <EOL> val javacOptions = ArrayList < String > ( <NUM_LIT:0> ) <EOL> var addRuntime = false <EOL> var addReflect = false <EOL> for ( file in files ) { <EOL> if ( InTextDirectivesUtils . isDirectiveDefined ( file . content , "<STR_LIT>" ) ) { <EOL> addRuntime = true <EOL> } <EOL> if ( InTextDirectivesUtils . isDirectiveDefined ( file . content , "<STR_LIT>" ) ) { <EOL> addReflect = true <EOL> } <EOL> javacOptions . addAll ( InTextDirectivesUtils . findListWithPrefixes ( file . content , "<STR_LIT>" ) ) <EOL> } <EOL> val configurationKind = when { <EOL> addReflect -> ConfigurationKind . ALL <EOL> addRuntime -> ConfigurationKind . NO_KOTLIN_REFLECT <EOL> else -> ConfigurationKind . JDK_ONLY <EOL> } <EOL> val configuration = createConfiguration ( configurationKind , jdkKind , listOf < File > ( getAnnotationsJar ( ) ) , listOfNotNull ( writeJavaFiles ( files ) ) , files ) <EOL> myEnvironment = KotlinCoreEnvironment . createForTests ( testRootDisposable , configuration , EnvironmentConfigFiles . JVM_CONFIG_FILES ) <EOL> }


protected abstract fun doTest ( wholeFile : File , testFiles : List < TestFile > )


protected open fun generateIrModule ( ignoreErrors : Boolean = false ) : IrModuleFragment

{ <EOL> assert ( myFiles != null ) { "<STR_LIT>" } <EOL> assert ( myEnvironment != null ) { "<STR_LIT>" } <EOL> val psi2Ir = Psi2IrTranslator ( myEnvironment . configuration . languageVersionSettings , Psi2IrConfiguration ( ignoreErrors ) , myEnvironment . configuration :: checkNoUnboundSymbols ) <EOL> return doGenerateIrModule ( psi2Ir ) <EOL> }


protected open fun doGenerateIrModule ( psi2IrTranslator : Psi2IrTranslator ) : IrModuleFragment

= <EOL> generateIrModuleWithJvmResolve ( myFiles . psiFiles , myEnvironment , psi2IrTranslator , myEnvironment . configuration . languageVersionSettings )


protected fun generateIrFilesAsSingleModule ( testFiles : List < TestFile > , ignoreErrors : Boolean = false ) : Map < TestFile , IrFile >

{ <EOL> val irModule = generateIrModule ( ignoreErrors ) <EOL> val ktFiles = testFiles . filter { it . name . endsWith ( "<STR_LIT>" ) } <EOL> return ktFiles . zip ( irModule . files ) . toMap ( ) <EOL> }


internal fun shouldIgnoreErrors ( wholeFile : File ) : Boolean

= <EOL> IGNORE_ERRORS_PATTERN . containsMatchIn ( wholeFile . readText ( ) )


fun generateIrModuleWithJsResolve ( ktFilesToAnalyze : List < KtFile > , environment : KotlinCoreEnvironment , psi2ir : Psi2IrTranslator ) : IrModuleFragment

= <EOL> generateIrModule ( TopDownAnalyzerFacadeForJS . analyzeFiles ( ktFilesToAnalyze , environment . project , environment . configuration , moduleDescriptors = emptyList ( ) , friendModuleDescriptors = emptyList ( ) , CompilerEnvironment , ) , psi2ir , ktFilesToAnalyze , GeneratorExtensions ( ) , createIdSignatureComposer = { IdSignatureDescriptor ( JsManglerDesc ) } )


fun generateIrModuleWithJvmResolve ( ktFilesToAnalyze : List < KtFile > , environment : KotlinCoreEnvironment , psi2ir : Psi2IrTranslator , languageVersionSettings : LanguageVersionSettings ) : IrModuleFragment

{ <EOL> return generateIrModule ( JvmResolveUtil . analyze ( ktFilesToAnalyze , environment ) , psi2ir , ktFilesToAnalyze , JvmGeneratorExtensionsImpl ( environment . configuration , generateFacades = false ) , createIdSignatureComposer = { bindingContext -> <EOL> JvmIdSignatureDescriptor ( JvmDescriptorMangler ( MainFunctionDetector ( bindingContext , languageVersionSettings ) ) ) <EOL> } ) <EOL> }


private fun generateIrModule ( analysisResult : AnalysisResult , psi2ir : Psi2IrTranslator , ktFilesToAnalyze : List < KtFile > , generatorExtensions : GeneratorExtensions , createIdSignatureComposer : ( BindingContext ) -> IdSignatureComposer ) : IrModuleFragment

{ <EOL> val ( bindingContext , moduleDescriptor ) = analysisResult <EOL> if ( ! psi2ir . configuration . ignoreErrors ) { <EOL> analysisResult . throwIfError ( ) <EOL> AnalyzingUtils . throwExceptionOnErrors ( bindingContext ) <EOL> } <EOL> val context = psi2ir . createGeneratorContext ( moduleDescriptor , bindingContext , SymbolTable ( createIdSignatureComposer ( bindingContext ) , IrFactoryImpl , NameProvider . DEFAULT ) , generatorExtensions ) <EOL> val irProviders = generateTypicalIrProviderList ( moduleDescriptor , context . irBuiltIns , context . symbolTable , DescriptorByIdSignatureFinderImpl ( moduleDescriptor , JsManglerDesc ) , extensions = generatorExtensions , ) <EOL> return psi2ir . generateModuleFragment ( context , ktFilesToAnalyze , irProviders , emptyList ( ) ) <EOL> }


override fun tryMerge ( pages : List < PageNode > , path : List < String > ) : List < PageNode >

{ <EOL> pages . map { <EOL> ( it as? ContentPage ) <EOL> } <EOL> val renderedPath = path . joinToString ( separator = "<STR_LIT:/>" ) <EOL> if ( pages . size != <NUM_LIT:1> ) logger . warn ( "<STR_LIT>" ) <EOL> return listOf ( pages . first ( ) ) <EOL> }


= assertEquals ( listOf ( "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" , ) . map ( :: TestName ) , GTestListing . parse ( """<STR_LIT>""" . trimMargin ( ) ) )


@ Test <EOL> fun unexpectedEmptyLine1 ( )

= assertCorrectParseError ( "<STR_LIT>" , <NUM_LIT:0> , """<STR_LIT>""" . trimMargin ( ) )


@ Test <EOL> fun unexpectedEmptyLine2 ( )


@ Test <EOL> fun unexpectedEmptyLine3 ( )

= assertCorrectParseError ( "<STR_LIT>" , <NUM_LIT:1> , """<STR_LIT>""" . trimMargin ( ) )


@ Test <EOL> fun unexpectedEmptyLine4 ( )

= assertCorrectParseError ( "<STR_LIT>" , <NUM_LIT:3> , """<STR_LIT>""" . trimMargin ( ) )


@ Test <EOL> fun testNameBeforeTestSuiteName ( )


@ Test <EOL> fun unexpectedTestSuiteName ( )


@ Test <EOL> fun noTestNameAfterTestSuiteName ( )

= assertCorrectParseError ( "<STR_LIT>" , <NUM_LIT:2> , """<STR_LIT>""" . trimMargin ( ) )


private fun assertCorrectParseError ( expectedMessage : String , lineNumber : Int , listing : String )

{ <EOL> try { <EOL> GTestListing . parse ( listing ) <EOL> fail { "<STR_LIT>" } <EOL> } catch ( e : AssertionError ) { <EOL> val message = e . message . orEmpty ( ) <EOL> if ( message . startsWith ( expectedMessage ) && "<STR_LIT>" in message ) { <EOL> } else <EOL> throw e <EOL> } <EOL> }


{ <EOL> suspend fun local ( ) = suspendCoroutineUninterceptedOrReturn < String > { <EOL> it . resume ( "<STR_LIT:OK>" ) <EOL> COROUTINE_SUSPENDED <EOL> } <EOL> return local ( ) <EOL> }


{ <EOL> c . startCoroutine ( EmptyContinuation ) <EOL> }


{ <EOL> var res = "<STR_LIT:FAIL>" <EOL> builder { <EOL> res = callLocal ( ) <EOL> } <EOL> return res <EOL> }


= "<STR_LIT:OK>"


{ <EOL> val x = :: foo <EOL> val y = :: bar <EOL> val z = :: baz <EOL> checkSubtype < KFunction0 < Unit > > ( x ) <EOL> checkSubtype < KFunction1 < Int , Unit > > ( y ) <EOL> checkSubtype < KFunction0 < String > > ( z ) <EOL> }


external fun __promisify__ ( path : String ) : Promise < Boolean >


external fun __promisify__ ( path : Buffer ) : Promise < Boolean >


external fun __promisify__ ( path : URL ) : Promise < Boolean >


fun getProperty ( key : String ) : Any ?


fun getSystemProperty ( key : String ) : String ?


private fun loadPropertyFile ( fileName : String , propertiesDestination : Properties )

{ <EOL> val propertiesFile = propertiesProvider . rootProjectDir . resolve ( fileName ) <EOL> if ( propertiesFile . isFile ) { <EOL> propertiesFile . reader ( ) . use ( propertiesDestination :: load ) <EOL> } <EOL> }


= <EOL> localProperties . getProperty ( key ) ? : propertiesProvider . getProperty ( key ) ? : rootProperties . getProperty ( key )


fun getBoolean ( key : String , default : Boolean = false ) : Boolean

{ <EOL> val value = this . getOrNull ( key ) ? . toString ( ) ? : return default <EOL> if ( value . isEmpty ( ) ) return true <EOL> return value . trim ( ) . toBoolean ( ) <EOL> }


override fun getProperty ( key : String ) : Any ?

= project . findProperty ( key )


override fun getSystemProperty ( key : String )

= project . providers . systemProperty ( key ) . orNull


{ <EOL> val obj = ( settings as DynamicObjectAware ) . asDynamicObject <EOL> return if ( obj . hasProperty ( key ) ) obj . getProperty ( key ) else null <EOL> }


= settings . providers . systemProperty ( key ) . orNull


fun getKotlinBuildPropertiesForSettings ( settings : Any )

= ( settings as Settings ) . kotlinBuildProperties


= ( a as Any ) === ( b as Any )


fun short ( a : Short , b : Short ) : Boolean

= ( a as Any ) === ( b as Any )


fun char ( a : Char , b : Char ) : Boolean

= ( a as Any ) === ( b as Any )


fun long ( a : Long , b : Long ) : Boolean

= ( a as Any ) === ( b as Any )


fun float ( a : Float , b : Float ) : Boolean

= ( a as Any ) === ( b as Any )


fun double ( a : Double , b : Double ) : Boolean

= ( a as Any ) === ( b as Any )


fun byte ( a : Byte , b : Byte ) : Boolean

= ( a as Any ) === ( b as Any )


fun boolean ( a : Boolean , b : Boolean ) : Boolean

= ( a as Any ) === ( b as Any )


{ <EOL> if ( int ( <NUM_LIT> , <NUM_LIT> ) ) return "<STR_LIT>" <EOL> if ( short ( <NUM_LIT> , <NUM_LIT> ) ) return "<STR_LIT>" <EOL> if ( char ( <NUM_LIT> . toChar ( ) , <NUM_LIT> . toChar ( ) ) ) return "<STR_LIT>" <EOL> if ( long ( <NUM_LIT> , <NUM_LIT> ) ) return "<STR_LIT>" <EOL> if ( float ( <NUM_LIT> , <NUM_LIT> ) ) return "<STR_LIT>" <EOL> if ( double ( <NUM_LIT> , <NUM_LIT> ) ) return "<STR_LIT>" <EOL> if ( ! byte ( <NUM_LIT> , <NUM_LIT> ) ) return "<STR_LIT>" <EOL> if ( ! boolean ( true , true ) ) return "<STR_LIT>" <EOL> return "<STR_LIT:OK>" <EOL> }


private fun prioritizedHistory ( receiverClass : KClass < * > ? , receiverInstance : Any ? ) : List < EvalClassWithInstanceAndLoader >

{ <EOL> val evalState = state . asState ( GenericReplEvaluatorState :: class . java ) <EOL> return evalState . history . map { it . item } . filter { it . instance != null } . reversed ( ) . ensureNotEmpty ( "<STR_LIT>" ) . let { history -> <EOL> if ( receiverInstance != null ) { <EOL> val receiverKlass = receiverClass ? : receiverInstance :: class <EOL> val receiverInHistory = history . find { it . instance == receiverInstance } ? : <EOL> EvalClassWithInstanceAndLoader ( receiverKlass , receiverInstance , receiverKlass . java . classLoader , history . first ( ) . invokeWrapper ) <EOL> listOf ( receiverInHistory ) + history . filterNot { it == receiverInHistory } <EOL> } <EOL> else { <EOL> history <EOL> } <EOL> } <EOL> }


override fun invokeFunction ( name : String ? , vararg args : Any ? ) : Any ?

{ <EOL> if ( name == null ) throw java . lang . NullPointerException ( "<STR_LIT>" ) <EOL> return invokeImpl ( prioritizedHistory ( null , null ) , name , args ) <EOL> }


override fun invokeMethod ( thiz : Any ? , name : String ? , vararg args : Any ? ) : Any ?

{ <EOL> if ( name == null ) throw java . lang . NullPointerException ( "<STR_LIT>" ) <EOL> if ( thiz == null ) throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> return invokeImpl ( prioritizedHistory ( thiz :: class , thiz ) , name , args ) <EOL> }


private fun invokeImpl ( prioritizedCallOrder : List < EvalClassWithInstanceAndLoader > , name : String , args : Array < out Any ? > ) : Any ?

{ <EOL> val ( fn , mapping , invokeWrapper ) = prioritizedCallOrder . asSequence ( ) . map { ( klass , instance , _ , invokeWrapper ) -> <EOL> val candidates = klass . functions . filter { it . name == name } <EOL> candidates . findMapping ( listOf ( instance ) + args ) ? . let { <EOL> Triple ( it . first , it . second , invokeWrapper ) <EOL> } <EOL> } . filterNotNull ( ) . firstOrNull ( ) ? : throw NoSuchMethodException ( "<STR_LIT>" ) <EOL> val res = try { <EOL> if ( invokeWrapper != null ) { <EOL> invokeWrapper . invoke { <EOL> fn . callBy ( mapping ) <EOL> } <EOL> } <EOL> else { <EOL> fn . callBy ( mapping ) <EOL> } <EOL> } <EOL> catch ( e : Throwable ) { <EOL> throw ScriptException ( renderReplStackTrace ( e . cause ! ! , startFromMethodName = fn . name ) ) <EOL> } <EOL> return if ( fn . returnType . classifier == Unit :: class ) Unit else res <EOL> }


override fun < T : Any > getInterface ( clasz : Class < T > ? ) : T ?

{ <EOL> return proxyInterface ( null , clasz ) <EOL> }


override fun < T : Any > getInterface ( thiz : Any ? , clasz : Class < T > ? ) : T ?

{ <EOL> if ( thiz == null ) throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> return proxyInterface ( thiz , clasz ) <EOL> }


private fun < T : Any > proxyInterface ( thiz : Any ? , clasz : Class < T > ? ) : T ?

{ <EOL> if ( state . history . size == <NUM_LIT:0> ) throw IllegalStateException ( "<STR_LIT>" ) <EOL> val priority = prioritizedHistory ( thiz ? . javaClass ? . kotlin , thiz ) <EOL> if ( clasz == null ) throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> if ( ! clasz . isInterface ) throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> val proxy = Proxy . newProxyInstance ( Thread . currentThread ( ) . contextClassLoader , arrayOf ( clasz ) ) { _ , method , args -> <EOL> invokeImpl ( priority , method . name , args ? : emptyArray ( ) ) <EOL> } <EOL> return clasz . kotlin . safeCast ( proxy ) <EOL> }


private fun Iterable < KFunction < * > > . findMapping ( args : List < Any ? > ) : Pair < KFunction < * > , Map < KParameter , Any ? > > ?

{ <EOL> for ( fn in this ) { <EOL> val mapping = tryCreateCallableMapping ( fn , args ) <EOL> if ( mapping != null ) return fn to mapping <EOL> } <EOL> return null <EOL> }


{ <EOL> E :: entries <EOL> val ref = E :: entries <EOL> val refType : ( E ) -> Int = E :: entries <EOL> val refTypeWithAnyExpectedType : Any = E :: entries <EOL> }


= f ( )


{ <EOL> lateinit var ok : String <EOL> runNoInline { <EOL> ok = "<STR_LIT:OK>" <EOL> } <EOL> return ok <EOL> }


internal fun loadSequentialModelConfiguration ( configuration : File , inputShape : IntArray ? = null ) : Sequential

{ <EOL> val sequentialConfig = loadSerializedModel ( configuration ) <EOL> return deserializeSequentialModel ( sequentialConfig , inputShape ) <EOL> }

/**
 * Loads a [Sequential] model from json file with model configuration.
 *
 * @param [configuration] File containing model configuration.
 * @return Non-compiled and non-trained Sequential model.
 */


internal fun deserializeSequentialModel ( sequentialConfig : KerasModel ? , inputShape : IntArray ? = null ) : Sequential

{ <EOL> val pair = loadSequentialModelLayers ( sequentialConfig , inputShape ) <EOL> val input : Input = pair . first <EOL> val layers = pair . second <EOL> return Sequential . of ( input , * layers . toList ( ) . toTypedArray ( ) ) <EOL> }


internal fun loadSequentialModelLayers ( config : KerasModel ? , inputShape : IntArray ? = null ) : Pair < Input , List < Layer > >

{ <EOL> val kerasLayers = config ! ! . config ! ! . layers ! ! <EOL> val input = createInputLayer ( kerasLayers . first ( ) , inputShape ) <EOL> val layers = kerasLayers . filter { ! it . class_name . equals ( LAYER_INPUT ) } . mapTo ( mutableListOf ( ) ) { <EOL> convertToLayer ( it ) <EOL> } <EOL> return Pair ( input , layers ) <EOL> }

/**
 * Loads a [Sequential] model layers from json file with model configuration.
 *
 * NOTE: This method is useful in transfer learning, when you need to manipulate on layers before building the Sequential model.
 *
 * @param config Model configuration.
 * @return Pair of <input layer; list of layers>.
 */


private fun convertToLayer ( kerasLayer : KerasLayer ) : Layer

{ <EOL> return when ( kerasLayer . class_name ) { <EOL> LAYER_ACTIVATION -> createActivationLayer ( kerasLayer . config ! ! ) <EOL> LAYER_DENSE -> createDenseLayer ( kerasLayer . config ! ! ) <EOL> LAYER_PERMUTE -> createPermuteLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CONV1D -> createConv1DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CONV2D -> createConv2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CONV3D -> createConv3DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CONV1D_TRANSPOSE -> createConv1DTransposeLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CONV2D_TRANSPOSE -> createConv2DTransposeLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CONV3D_TRANSPOSE -> createConv3DTransposeLayer ( kerasLayer . config ! ! ) <EOL> LAYER_DEPTHWISE_CONV2D -> createDepthwiseConv2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_SEPARABLE_CONV2D -> createSeparableConv2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_MAX_POOL_1D -> createMaxPool1DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_MAX_POOL_2D -> createMaxPool2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_MAX_POOL_3D -> createMaxPool3DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_AVG_POOL_1D -> createAvgPool1DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_AVG_POOL_2D -> createAvgPool2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_AVG_POOL_3D -> createAvgPool3DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_GLOBAL_MAX_POOL_1D -> GlobalMaxPool1D ( ) <EOL> LAYER_GLOBAL_MAX_POOL_2D -> GlobalMaxPool2D ( ) <EOL> LAYER_GLOBAL_MAX_POOL_3D -> GlobalMaxPool3D ( ) <EOL> LAYER_GLOBAL_AVG_POOL_1D -> GlobalAvgPool1D ( ) <EOL> LAYER_GLOBAL_AVG_POOL_2D -> GlobalAvgPool2D ( ) <EOL> LAYER_GLOBAL_AVG_POOL_3D -> GlobalAvgPool3D ( ) <EOL> LAYER_BATCH_NORM -> createBatchNormLayer ( kerasLayer . config ! ! ) <EOL> LAYER_DROPOUT -> createDropoutLayer ( kerasLayer . config ! ! ) <EOL> LAYER_FLATTEN -> Flatten ( ) <EOL> LAYER_REPEAT_VECTOR -> createRepeatVectorLayer ( kerasLayer . config ! ! ) <EOL> LAYER_RESHAPE -> createReshapeLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CROPPING_1D -> createCropping1DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CROPPING_2D -> createCropping2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_CROPPING_3D -> createCropping3DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_ZERO_PADDING_1D -> createZeroPadding1DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_ZERO_PADDING_2D -> createZeroPadding2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_ZERO_PADDING_3D -> createZeroPadding3DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_UP_SAMPLING_1D -> createUpSampling1DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_UP_SAMPLING_2D -> createUpSampling2DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_UP_SAMPLING_3D -> createUpSampling3DLayer ( kerasLayer . config ! ! ) <EOL> LAYER_ADD -> Add ( ) <EOL> LAYER_AVERAGE -> Average ( ) <EOL> LAYER_SUBTRACT -> Subtract ( ) <EOL> LAYER_MAXIMUM -> Maximum ( ) <EOL> LAYER_MINIMUM -> Minimum ( ) <EOL> LAYER_MULTIPLY -> Multiply ( ) <EOL> LAYER_CONCATENATE -> createConcatenateLayer ( kerasLayer . config ! ! ) <EOL> LAYER_DOT -> createDotLayer ( kerasLayer . config ! ! ) <EOL> LAYER_RELU -> createReLULayer ( kerasLayer . config ! ! ) <EOL> LAYER_ELU -> createELULayer ( kerasLayer . config ! ! ) <EOL> LAYER_PRELU -> createPReLULayer ( kerasLayer . config ! ! ) <EOL> LAYER_LEAKY_RELU -> createLeakyReLULayer ( kerasLayer . config ! ! ) <EOL> LAYER_THRESHOLDED_RELU -> createThresholdedReLULayer ( kerasLayer . config ! ! ) <EOL> LAYER_SOFTMAX -> createSoftmaxLayer ( kerasLayer . config ! ! ) <EOL> else -> throw IllegalStateException ( "<STR_LIT>" ) <EOL> } . apply { <EOL> if ( this is TrainableLayer ) { <EOL> isTrainable = kerasLayer . config ? . trainable ? : isTrainable <EOL> } <EOL> name = kerasLayer . config ? . name ? : name <EOL> } <EOL> }


internal fun loadFunctionalModelConfiguration ( configuration : File , inputShape : IntArray ? = null ) : Functional

{ <EOL> val functionalConfig = loadSerializedModel ( configuration ) <EOL> return deserializeFunctionalModel ( functionalConfig , inputShape ) <EOL> }


internal fun deserializeFunctionalModel ( functionalConfig : KerasModel ? , inputShape : IntArray ? = null )

= <EOL> Functional . of ( loadFunctionalModelLayers ( functionalConfig , inputShape ) . toList ( ) )


internal fun loadFunctionalModelLayers ( config : KerasModel ? , inputShape : IntArray ? = null ) : List < Layer >

{ <EOL> val layers = mutableListOf < Layer > ( ) <EOL> val layersByNames = mutableMapOf < String , Layer > ( ) <EOL> val kerasLayers = config ! ! . config ! ! . layers ! ! <EOL> val input = createInputLayer ( kerasLayers . first ( ) , inputShape ) <EOL> layers . add ( input ) <EOL> layersByNames [ input . name ] = input <EOL> kerasLayers . forEach { <EOL> if ( ! it . class_name . equals ( LAYER_INPUT ) ) { <EOL> val layer = convertToLayer ( it , layersByNames ) <EOL> layers . add ( layer ) <EOL> layersByNames [ layer . name ] = layer <EOL> } <EOL> } <EOL> return layers <EOL> }

/**
 * Loads a [Functional] model layers from json file with model configuration.
 *
 * NOTE: This method is useful in transfer learning, when you need to manipulate on layers before building the Functional model.
 *
 * @param config Model configuration.
 * @return Pair of <input layer; list of layers>.
 */


internal fun loadSerializedModel ( jsonConfigFile : File )

= try { <EOL> val jsonString = jsonConfigFile . readText ( Charsets . UTF_8 ) <EOL> Klaxon ( ) <EOL> . converter ( PaddingConverter ( ) ) <EOL> . parse < KerasModel > ( jsonString ) <EOL> } catch ( e : Exception ) { <EOL> e . printStackTrace ( ) <EOL> try { <EOL> Klaxon ( ) <EOL> . converter ( PaddingConverter ( ) ) <EOL> . parse < KerasModel > ( jsonConfigFile ) <EOL> } catch ( e : Exception ) { <EOL> e . printStackTrace ( ) <EOL> throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> } <EOL> }


private fun convertToLayer ( kerasLayer : KerasLayer , layersByName : Map < String , Layer > ) : Layer

{ <EOL> val layer = convertToLayer ( kerasLayer ) <EOL> val inboundLayers = mutableListOf < Layer > ( ) <EOL> if ( kerasLayer . class_name != LAYER_INPUT ) { <EOL> val inboundNodes = kerasLayer . inbound_nodes ! ! as List < List < List < Any > > > <EOL> inboundNodes [ <NUM_LIT:0> ] . forEach { inboundNode -> <EOL> check ( inboundNode . isNotEmpty ( ) ) { "<STR_LIT>" } <EOL> layersByName [ inboundNode [ <NUM_LIT:0> ] as String ] ? . let { inboundLayers . add ( it ) } <EOL> } <EOL> layer . inboundLayers = inboundLayers <EOL> } <EOL> return layer <EOL> }


private fun convertToRegularizer ( regularizer : KerasRegularizer ? ) : Regularizer ?

{ <EOL> return if ( regularizer != null ) { <EOL> val l1 = regularizer . config ! ! . l1 <EOL> val l2 = regularizer . config . l2 <EOL> if ( l1 != <NUM_LIT:0.0> && l2 != <NUM_LIT:0.0> ) { <EOL> L2L1 ( l1 ! ! . toFloat ( ) , l2 ! ! . toFloat ( ) ) <EOL> } else if ( l1 == <NUM_LIT:0.0> && l2 != <NUM_LIT:0.0> ) { <EOL> L2 ( l2 ! ! . toFloat ( ) ) <EOL> } else if ( l1 != <NUM_LIT:0.0> && l2 == <NUM_LIT:0.0> ) { <EOL> L1 ( l1 ! ! . toFloat ( ) ) <EOL> } else { <EOL> null <EOL> } <EOL> } else { <EOL> null <EOL> } <EOL> }


private fun convertToInitializer ( initializer : KerasInitializer ) : Initializer

{ <EOL> val config = initializer . config <EOL> val seed = config ! ! . seed ? . toLong ( ) ? : <NUM_LIT> <EOL> return when ( initializer . class_name ! ! ) { <EOL> INITIALIZER_GLOROT_UNIFORM -> GlorotUniform ( seed = seed ) <EOL> INITIALIZER_GLOROT_NORMAL -> GlorotNormal ( seed = seed ) <EOL> INITIALIZER_HE_NORMAL -> HeNormal ( seed = seed ) <EOL> INITIALIZER_HE_UNIFORM -> HeUniform ( seed = seed ) <EOL> INITIALIZER_LECUN_NORMAL -> LeCunNormal ( seed = seed ) <EOL> INITIALIZER_LECUN_UNIFORM -> LeCunUniform ( seed = seed ) <EOL> INITIALIZER_RANDOM_NORMAL -> RandomNormal ( seed = seed , mean = config . mean ! ! . toFloat ( ) , stdev = config . stddev ! ! . toFloat ( ) ) <EOL> INITIALIZER_RANDOM_UNIFORM -> RandomUniform ( seed = seed , minVal = config . minval ! ! . toFloat ( ) , maxVal = config . maxval ! ! . toFloat ( ) ) <EOL> INITIALIZER_VARIANCE_SCALING -> convertVarianceScalingInitializer ( initializer ) <EOL> INITIALIZER_TRUNCATED_NORMAL -> TruncatedNormal ( seed = seed ) <EOL> INITIALIZER_PARAMETRIZED_TRUNCATED_NORMAL -> ParametrizedTruncatedNormal ( mean = config . mean ! ! . toFloat ( ) , stdev = config . stddev ! ! . toFloat ( ) , p1 = config . p1 ! ! . toFloat ( ) , p2 = config . p2 ! ! . toFloat ( ) , seed = seed ) <EOL> INITIALIZER_ORTHOGONAL -> Orthogonal ( seed = seed , gain = config . gain ! ! . toFloat ( ) ) <EOL> INITIALIZER_ZEROS -> Zeros ( ) <EOL> INITIALIZER_ONES -> Ones ( ) <EOL> INITIALIZER_CONSTANT -> Constant ( config . value ! ! . toFloat ( ) ) <EOL> INITIALIZER_IDENTITY -> Identity ( config . gain ? . toFloat ( ) ? : <NUM_LIT> ) <EOL> else -> throw IllegalStateException ( "<STR_LIT>" ) <EOL> } <EOL> }


private fun convertVarianceScalingInitializer ( initializer : KerasInitializer ) : Initializer

{ <EOL> val seed = if ( initializer . config ! ! . seed != null ) { <EOL> initializer . config . seed ! ! . toLong ( ) <EOL> } else <NUM_LIT> <EOL> val config = initializer . config <EOL> val scale = config . scale ! ! <EOL> val mode : Mode = convertMode ( config . mode ! ! ) <EOL> val distribution : Distribution = convertDistribution ( config . distribution ! ! ) <EOL> return if ( scale == <NUM_LIT:2.0> && mode == Mode . FAN_IN ) { <EOL> when ( distribution ) { <EOL> Distribution . UNIFORM -> HeUniform ( seed ) <EOL> Distribution . TRUNCATED_NORMAL -> { <EOL> HeNormal ( seed ) <EOL> } <EOL> else -> VarianceScaling ( scale , mode , distribution , seed ) <EOL> } <EOL> } else { <EOL> when ( mode ) { <EOL> Mode . FAN_IN -> { <EOL> when ( distribution ) { <EOL> Distribution . UNIFORM -> LeCunUniform ( seed ) <EOL> Distribution . TRUNCATED_NORMAL -> { <EOL> LeCunNormal ( seed ) <EOL> } <EOL> else -> VarianceScaling ( scale , mode , distribution , seed ) <EOL> } <EOL> } <EOL> Mode . FAN_AVG -> { <EOL> when ( distribution ) { <EOL> Distribution . UNIFORM -> GlorotUniform ( seed ) <EOL> Distribution . TRUNCATED_NORMAL -> { <EOL> GlorotNormal ( seed ) <EOL> } <EOL> else -> VarianceScaling ( scale , mode , distribution , seed ) <EOL> } <EOL> } <EOL> else -> VarianceScaling ( scale , mode , distribution , seed ) <EOL> } <EOL> } <EOL> }


private fun convertDistribution ( distribution : String ) : Distribution

{ <EOL> return when ( distribution ) { <EOL> "<STR_LIT>" -> Distribution . TRUNCATED_NORMAL <EOL> "<STR_LIT>" -> Distribution . UNIFORM <EOL> "<STR_LIT>" -> Distribution . UNTRUNCATED_NORMAL <EOL> else -> Distribution . TRUNCATED_NORMAL <EOL> } <EOL> }


private fun convertMode ( mode : String ) : Mode

{ <EOL> return when ( mode ) { <EOL> "<STR_LIT>" -> Mode . FAN_IN <EOL> "<STR_LIT>" -> Mode . FAN_OUT <EOL> "<STR_LIT>" -> Mode . FAN_AVG <EOL> else -> Mode . FAN_AVG <EOL> } <EOL> }


private fun convertToActivation ( activation : String ) : Activations

{ <EOL> return when ( activation ) { <EOL> ACTIVATION_RELU -> Activations . Relu <EOL> ACTIVATION_SIGMOID -> Activations . Sigmoid <EOL> ACTIVATION_SOFTMAX -> Activations . Softmax <EOL> ACTIVATION_LINEAR -> Activations . Linear <EOL> ACTIVATION_TANH -> Activations . Tanh <EOL> ACTIVATION_TANHSHRINK -> Activations . TanhShrink <EOL> ACTIVATION_RELU6 -> Activations . Relu6 <EOL> ACTIVATION_ELU -> Activations . Elu <EOL> ACTIVATION_SELU -> Activations . Selu <EOL> ACTIVATION_LOG_SOFTMAX -> Activations . LogSoftmax <EOL> ACTIVATION_EXP -> Activations . Exponential <EOL> ACTIVATION_SOFTPLUS -> Activations . SoftPlus <EOL> ACTIVATION_SOFTSIGN -> Activations . SoftSign <EOL> ACTIVATION_HARD_SIGMOID -> Activations . HardSigmoid <EOL> ACTIVATION_SWISH -> Activations . Swish <EOL> ACTIVATION_MISH -> Activations . Mish <EOL> ACTIVATION_HARDSHRINK -> Activations . HardShrink <EOL> ACTIVATION_LISHT -> Activations . LiSHT <EOL> ACTIVATION_SNAKE -> Activations . Snake <EOL> ACTIVATION_GELU -> Activations . Gelu <EOL> ACTIVATION_SPARSEMAX -> Activations . Sparsemax <EOL> else -> throw IllegalStateException ( "<STR_LIT>" ) <EOL> } <EOL> }


private fun convertToInterpolationMethod ( interpolation : String ) : InterpolationMethod

{ <EOL> return when ( interpolation ) { <EOL> InterpolationMethod . NEAREST . methodName -> InterpolationMethod . NEAREST <EOL> InterpolationMethod . BILINEAR . methodName -> InterpolationMethod . BILINEAR <EOL> InterpolationMethod . BICUBIC . methodName -> InterpolationMethod . BICUBIC <EOL> else -> throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> } <EOL> }


private fun createInputLayer ( layer : KerasLayer , inputShape : IntArray ? = null ) : Input

{ <EOL> val inputLayerDims = if ( inputShape != null ) { <EOL> inputShape . map { it . toLong ( ) } . toLongArray ( ) <EOL> } else { <EOL> val batchInputShape = layer . config ! ! . batch_input_shape ! ! <EOL> batchInputShape . subList ( <NUM_LIT:1> , batchInputShape . size ) . map { it ! ! . toLong ( ) } . toLongArray ( ) <EOL> } <EOL> val inputLayerName = if ( layer . class_name . equals ( LAYER_INPUT ) ) layer . config ! ! . name ? : "<STR_LIT>" else "<STR_LIT>" <EOL> return Input ( * inputLayerDims , name = inputLayerName ) <EOL> }

/**
 * The layer creator functions should be put below.
 */


private fun createConcatenateLayer ( config : LayerConfig ) : Layer

{ <EOL> return Concatenate ( axis = config . axis ! ! as Int ) <EOL> }


private fun createDotLayer ( config : LayerConfig ) : Layer

{ <EOL> return Dot ( axis = config . axis ! ! as IntArray , normalize = config . normalize ? : false ) <EOL> }


private fun createDropoutLayer ( config : LayerConfig ) : Layer

{ <EOL> return Dropout ( rate = config . rate ! ! . toFloat ( ) ) <EOL> }


private fun createActivationLayer ( config : LayerConfig ) : Layer

{ <EOL> return ActivationLayer ( activation = convertToActivation ( config . activation ! ! ) ) <EOL> }


private fun createReLULayer ( config : LayerConfig ) : Layer

{ <EOL> return ReLU ( maxValue = config . max_value ! ! . toFloat ( ) , negativeSlope = config . negative_slope ! ! . toFloat ( ) , threshold = config . threshold ! ! . toFloat ( ) ) <EOL> }


private fun createELULayer ( config : LayerConfig ) : Layer

{ <EOL> return ELU ( alpha = config . alpha ! ! . toFloat ( ) ) <EOL> }


private fun createPReLULayer ( config : LayerConfig ) : Layer

{ <EOL> return PReLU ( alphaInitializer = convertToInitializer ( config . alpha_initializer ! ! ) , alphaRegularizer = convertToRegularizer ( config . alpha_regularizer ) , sharedAxes = config . shared_axes ? . toIntArray ( ) ) <EOL> }


private fun createLeakyReLULayer ( config : LayerConfig ) : Layer

{ <EOL> return LeakyReLU ( alpha = config . alpha ! ! . toFloat ( ) ) <EOL> }


private fun createThresholdedReLULayer ( config : LayerConfig ) : Layer

{ <EOL> return ThresholdedReLU ( theta = config . theta ! ! . toFloat ( ) ) <EOL> }


private fun createSoftmaxLayer ( config : LayerConfig ) : Layer

{ <EOL> val axis = when ( config . axis ) { <EOL> is Int -> listOf ( config . axis ) <EOL> is List < * > -> config . axis as List < Int > <EOL> else -> throw IllegalArgumentException ( "<STR_LIT>" ) <EOL> } <EOL> return Softmax ( axis = axis ) <EOL> }


private fun createBatchNormLayer ( config : LayerConfig ) : Layer

{ <EOL> return BatchNorm ( axis = config . axis ! ! as List < Int > , momentum = config . momentum ! ! , center = config . center ! ! , epsilon = config . epsilon ! ! , scale = config . scale ! ! as Boolean , gammaInitializer = convertToInitializer ( config . gamma_initializer ! ! ) , betaInitializer = convertToInitializer ( config . beta_initializer ! ! ) , gammaRegularizer = convertToRegularizer ( config . gamma_regularizer ) , betaRegularizer = convertToRegularizer ( config . beta_regularizer ) , movingMeanInitializer = convertToInitializer ( config . moving_mean_initializer ! ! ) , movingVarianceInitializer = convertToInitializer ( config . moving_variance_initializer ! ! ) ) <EOL> }


private fun createDenseLayer ( config : LayerConfig ) : Layer

{ <EOL> return Dense ( outputSize = config . units ! ! , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , useBias = config . use_bias ? : true ) <EOL> }


private fun createPermuteLayer ( config : LayerConfig ) : Layer

{ <EOL> return Permute ( dims = config . dims ! ! <EOL> ) <EOL> }


private fun createMaxPool1DLayer ( config : LayerConfig ) : Layer

{ <EOL> return MaxPool1D ( poolSize = intArrayOf ( <NUM_LIT:1> , config . pool_size ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , strides = intArrayOf ( <NUM_LIT:1> , config . strides ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , padding = convertPadding ( config . padding ! ! ) ) <EOL> }


private fun createMaxPool2DLayer ( config : LayerConfig ) : Layer

{ <EOL> val poolSize = config . pool_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> return MaxPool2D ( poolSize = intArrayOf ( <NUM_LIT:1> , * poolSize , <NUM_LIT:1> ) , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , padding = convertPadding ( config . padding ! ! ) ) <EOL> }


private fun createAvgPool1DLayer ( config : LayerConfig ) : Layer

{ <EOL> return AvgPool1D ( poolSize = intArrayOf ( <NUM_LIT:1> , config . pool_size ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , strides = intArrayOf ( <NUM_LIT:1> , config . strides ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , padding = convertPadding ( config . padding ! ! ) ) <EOL> }


private fun createAvgPool2DLayer ( config : LayerConfig ) : Layer

{ <EOL> val poolSize = config . pool_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> return AvgPool2D ( poolSize = intArrayOf ( <NUM_LIT:1> , * poolSize , <NUM_LIT:1> ) , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , padding = convertPadding ( config . padding ! ! ) ) <EOL> }


private fun createAvgPool3DLayer ( config : LayerConfig ) : Layer

{ <EOL> val poolSize = config . pool_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> return AvgPool3D ( poolSize = intArrayOf ( <NUM_LIT:1> , * poolSize , <NUM_LIT:1> ) , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , padding = convertPadding ( config . padding ! ! ) ) <EOL> }


private fun createMaxPool3DLayer ( config : LayerConfig ) : Layer

{ <EOL> val poolSize = config . pool_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> return MaxPool3D ( poolSize = intArrayOf ( <NUM_LIT:1> , * poolSize , <NUM_LIT:1> ) , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , padding = convertPadding ( config . padding ! ! ) ) <EOL> }


private fun convertPadding ( padding : KerasPadding ) : ConvPadding

{ <EOL> return when ( padding ) { <EOL> is KerasPadding . Same -> ConvPadding . SAME <EOL> is KerasPadding . Valid -> ConvPadding . VALID <EOL> is KerasPadding . Full -> ConvPadding . FULL <EOL> else -> throw UnsupportedOperationException ( "<STR_LIT>" ) <EOL> } <EOL> }


private fun createRepeatVectorLayer ( config : LayerConfig ) : Layer

{ <EOL> return RepeatVector ( n = config . n ! ! ) <EOL> }


private fun createReshapeLayer ( config : LayerConfig ) : Layer

{ <EOL> return Reshape ( targetShape = config . target_shape ! ! ) <EOL> }


private fun createConv1DLayer ( config : LayerConfig ) : Layer

{ <EOL> return Conv1D ( filters = config . filters ! ! , kernelLength = config . kernel_size ! ! [ <NUM_LIT:0> ] , strides = intArrayOf ( <NUM_LIT:1> , config . strides ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , config . dilation_rate ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , useBias = config . use_bias ! ! <EOL> ) <EOL> }


private fun createConv2DLayer ( config : LayerConfig ) : Layer

{ <EOL> val kernelSize = config . kernel_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> val dilation = config . dilation_rate ! ! . toIntArray ( ) <EOL> return Conv2D ( filters = config . filters ! ! , kernelSize = kernelSize , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , * dilation , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , useBias = config . use_bias ! ! <EOL> ) <EOL> }


private fun createConv3DLayer ( config : LayerConfig ) : Layer

{ <EOL> val kernelSize = config . kernel_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> val dilation = config . dilation_rate ! ! . toIntArray ( ) <EOL> return Conv3D ( filters = config . filters ! ! , kernelSize = kernelSize , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , * dilation , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , useBias = config . use_bias ! ! <EOL> ) <EOL> }


private fun createConv1DTransposeLayer ( config : LayerConfig ) : Layer

{ <EOL> return Conv1DTranspose ( filters = config . filters ! ! , kernelLength = config . kernel_size ! ! [ <NUM_LIT:0> ] , strides = intArrayOf ( <NUM_LIT:1> , config . strides ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , config . dilation_rate ! ! [ <NUM_LIT:0> ] , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , outputPadding = config . output_padding ? . convertToOutputPadding ( ) , useBias = config . use_bias ! ! , ) <EOL> }


private fun createConv2DTransposeLayer ( config : LayerConfig ) : Layer

{ <EOL> val kernelSize = config . kernel_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> val dilation = config . dilation_rate ! ! . toIntArray ( ) <EOL> return Conv2DTranspose ( filters = config . filters ! ! , kernelSize = kernelSize , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , * dilation , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , outputPadding = config . output_padding ? . convertToOutputPadding ( ) , useBias = config . use_bias ! ! , ) <EOL> }


private fun createConv3DTransposeLayer ( config : LayerConfig ) : Layer

{ <EOL> val kernelSize = config . kernel_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> val dilation = config . dilation_rate ! ! . toIntArray ( ) <EOL> return Conv3DTranspose ( filters = config . filters ! ! , kernelSize = kernelSize , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , * dilation , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , kernelInitializer = convertToInitializer ( config . kernel_initializer ! ! ) , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , kernelRegularizer = convertToRegularizer ( config . kernel_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , useBias = config . use_bias ! ! , ) <EOL> }


private fun List < Int > . convertToOutputPadding ( ) : IntArray

{ <EOL> return intArrayOf ( <NUM_LIT:0> , <NUM_LIT:0> , * flatMap { padding -> listOf ( padding / <NUM_LIT:2> , padding - padding / <NUM_LIT:2> ) } . toIntArray ( ) , <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> }


private fun createDepthwiseConv2DLayer ( config : LayerConfig ) : Layer

{ <EOL> val kernelSize = config . kernel_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> val dilation = config . dilation_rate ! ! . toIntArray ( ) <EOL> return DepthwiseConv2D ( kernelSize = kernelSize , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , * dilation , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , depthwiseInitializer = convertToInitializer ( config . depthwise_initializer ! ! ) , depthMultiplier = config . depth_multiplier ! ! , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , depthwiseRegularizer = convertToRegularizer ( config . depthwise_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , padding = convertPadding ( config . padding ! ! ) , useBias = config . use_bias ! ! <EOL> ) <EOL> }


private fun createSeparableConv2DLayer ( config : LayerConfig ) : Layer

{ <EOL> val kernelSize = config . kernel_size ! ! . toIntArray ( ) <EOL> val strides = config . strides ! ! . toIntArray ( ) <EOL> val dilation = config . dilation_rate ! ! . toIntArray ( ) <EOL> return SeparableConv2D ( filters = config . filters ! ! , kernelSize = kernelSize , strides = intArrayOf ( <NUM_LIT:1> , * strides , <NUM_LIT:1> ) , dilations = intArrayOf ( <NUM_LIT:1> , * dilation , <NUM_LIT:1> ) , activation = convertToActivation ( config . activation ! ! ) , depthwiseInitializer = convertToInitializer ( config . depthwise_initializer ! ! ) , pointwiseInitializer = convertToInitializer ( config . pointwise_initializer ! ! ) , depthMultiplier = config . depth_multiplier ! ! , biasInitializer = convertToInitializer ( config . bias_initializer ! ! ) , depthwiseRegularizer = convertToRegularizer ( config . depthwise_regularizer ) , pointwiseRegularizer = convertToRegularizer ( config . pointwise_regularizer ) , activityRegularizer = convertToRegularizer ( config . activity_regularizer ) , biasRegularizer = convertToRegularizer ( config . bias_regularizer ) , padding = convertPadding ( config . padding ! ! ) , useBias = config . use_bias ! ! <EOL> ) <EOL> }


private fun createZeroPadding1DLayer ( config : LayerConfig ) : Layer

{ <EOL> assert ( config . padding is KerasPadding . ZeroPadding1D ) <EOL> return ZeroPadding1D ( padding = ( config . padding as KerasPadding . ZeroPadding1D ) . padding ) <EOL> }


private fun createZeroPadding2DLayer ( config : LayerConfig ) : Layer

{ <EOL> assert ( config . padding is KerasPadding . ZeroPadding2D ) <EOL> return ZeroPadding2D ( padding = ( config . padding as KerasPadding . ZeroPadding2D ) . padding , dataFormat = config . data_format ) <EOL> }


private fun createZeroPadding3DLayer ( config : LayerConfig ) : Layer

{ <EOL> assert ( config . padding is KerasPadding . ZeroPadding3D ) <EOL> return ZeroPadding3D ( padding = ( config . padding as KerasPadding . ZeroPadding3D ) . padding ) <EOL> }


private fun createCropping1DLayer ( config : LayerConfig ) : Layer

{ <EOL> val cropping = config . cropping ! ! . map { it as Int } . toTypedArray ( ) . toIntArray ( ) <EOL> return Cropping1D ( cropping = cropping ) <EOL> }


private fun createCropping2DLayer ( config : LayerConfig ) : Layer

{ <EOL> val cropping = config . cropping ! ! . map { ( it as List < Int > ) . toIntArray ( ) } . toTypedArray ( ) <EOL> return Cropping2D ( cropping = cropping ) <EOL> }


private fun createCropping3DLayer ( config : LayerConfig ) : Layer

{ <EOL> val cropping = config . cropping ! ! . map { ( it as List < Int > ) . toIntArray ( ) } . toTypedArray ( ) <EOL> return Cropping3D ( cropping = cropping ) <EOL> }


private fun createUpSampling1DLayer ( config : LayerConfig ) : Layer

{ <EOL> return UpSampling1D ( size = config . size ! ! as Int ) <EOL> }


private fun createUpSampling2DLayer ( config : LayerConfig ) : Layer

{ <EOL> return UpSampling2D ( size = ( config . size ! ! as List < Int > ) . toIntArray ( ) , interpolation = convertToInterpolationMethod ( config . interpolation ! ! ) ) <EOL> }


private fun createUpSampling3DLayer ( config : LayerConfig ) : Layer

{ <EOL> return UpSampling3D ( size = ( config . size ! ! as List < Int > ) . toIntArray ( ) ) <EOL> }


fun test ( s1 : String , s2 : String , s3 : String ) : String

{ <EOL> fun foo ( s : String ) = s <EOL> return "<STR_LIT>" + foo ( s1 + s2 + "<STR_LIT>" ) + "<STR_LIT:U+0020>" <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: sin , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: cos , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: tan , arguments , answers , false ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , ) <EOL> checkAnswers ( :: asin , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: atan , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: atan2 , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: sinh , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: cosh , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: tanh , arguments , answers , true ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ) <EOL> checkAnswers ( :: asinh , arguments , answers , false ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , ) <EOL> checkAnswers ( :: acosh , arguments , answers , false ) <EOL> }


{ <EOL> val answers = arrayOf ( <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT:0x7ff8000000000000UL> , <NUM_LIT> , <NUM_LIT:0x7ff8000000000000UL> , ) <EOL> checkAnswers ( :: atanh , arguments , answers , false ) <EOL> }


{ <EOL> Application . launch ( ExampleApp :: class . java , * args ) <EOL> }


{ <EOL> stage . title = "<STR_LIT>" <EOL> stage . scene = scene <EOL> stage . show ( ) <EOL> setup ( hello , fab ) <EOL> }


fun setup ( hello : Text , fab : Circle )

{ <EOL> fab . onClick { <EOL> for ( i in <NUM_LIT:10> downTo <NUM_LIT:1> ) { <EOL> hello . text = "<STR_LIT>" <EOL> delay ( <NUM_LIT> ) <EOL> } <EOL> hello . text = "<STR_LIT>" <EOL> } <EOL> }


fun Node . onClick ( action : suspend ( MouseEvent ) -> Unit )

{ <EOL> val eventActor = GlobalScope . actor < MouseEvent > ( Dispatchers . Main ) { <EOL> for ( event in channel ) action ( event ) <EOL> } <EOL> onMouseClicked = EventHandler { event -> <EOL> eventActor . trySend ( event ) <EOL> } <EOL> }


= <NUM_LIT>


{ <EOL> assertEquals ( <NUM_LIT> , KT38234_Impl ( ) . callFoo ( ) ) <EOL> }


= x


{ <EOL> val x = :: foo <EOL> return x ( "<STR_LIT:OK>" ) <EOL> }


override fun asStringForDebugging ( ) : String

= withValidityAssertion { fe10Type . asStringForDebugging ( analysisContext ) }


{ <EOL> JavaClass ( ) . foo { "<STR_LIT>" } <EOL> }


{ <EOL> open class BaseLocal : Bar ( ) { <EOL> fun baz ( ) { } <EOL> } <EOL> val base = BaseLocal ( ) <EOL> base . baz ( ) <EOL> base . foo ( ) <EOL> val anonymous = object : Bar ( ) { <EOL> fun baz ( ) { } <EOL> } <EOL> anonymous . baz ( ) <EOL> anonymous . foo ( ) <EOL> class DerivedLocal : BaseLocal ( ) { <EOL> fun gau ( ) { } <EOL> } <EOL> val derived = DerivedLocal ( ) <EOL> derived . gau ( ) <EOL> derived . baz ( ) <EOL> derived . foo ( ) <EOL> }


private fun DeclarationIrBuilder . ensureNotNullable ( expression : IrExpression )

= <EOL> if ( expression . type is IrSimpleType && expression . type . isNullable ( ) ) { <EOL> irImplicitCast ( expression , expression . type . makeNotNull ( ) ) <EOL> } else { <EOL> expression <EOL> }


protected fun incrementInductionVariable ( builder : DeclarationIrBuilder ) : IrStatement

= with ( builder ) { <EOL> with ( headerInfo . progressionType ) { <EOL> val stepType = stepClass . defaultType <EOL> val plusFun = elementClass . defaultType . getClass ( ) ! ! . functions . single { <EOL> it . name == OperatorNameConventions . PLUS && <EOL> it . valueParameters . size == <NUM_LIT:1> && <EOL> it . valueParameters [ <NUM_LIT:0> ] . type == stepType <EOL> } <EOL> irSet ( inductionVariable . symbol , irCallOp ( plusFun . symbol , plusFun . returnType , irGet ( inductionVariable ) , stepExpression . shallowCopy ( ) , IrStatementOrigin . PLUSEQ ) , IrStatementOrigin . PLUSEQ ) <EOL> } <EOL> }

/** Statement used to increment the induction variable. */