/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 , ĠM erc en ary ĠCre ators ĠCompany . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġco . merc en ary . cre ators . kotlin . util . logging Ċ Ċ import Ġco . merc en ary . cre ators . kotlin . util .* Ċ import Ġmu .* Ċ import Ġorg . slf 4 j .* Ċ import Ġorg . slf 4 j . bridge . SL F 4 J Bridge Handler Ċ import Ġkotlin . reflect . K Class Ċ Ċ type alias ĠLogger Context Ġ= Ġch . qos . log back . classic . Logger Context Ċ Ċ @ Framework Dsl Ċ @ Ignore For Serialize Ċ object ĠLogging Factory Ġ: ĠHas Map Names Ġ{ ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠ Ġconst Ġval ĠK E Ġ= Ġ"$ " ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠ Ġconst Ġval ĠK T Ġ= Ġ" Kt $" ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠ Ġconst Ġval ĠROOT _ LOGGER _ NAME Ġ= ĠLogger . ROOT _ LOGGER _ NAME ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġprivate Ġval Ġopen Ġ= Ġfalse . to Atomic () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġprivate Ġval Ġauto Ġ= ĠLogging Config . is Auto Start () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġprivate Ġval Ġstop Ġ= ĠLogging Config . is Auto Close () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġprivate Ġval Ġj uli Ġ= ĠLogging Config . is Bridge ing () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġprivate Ġval Ġlist Ġ= ĠLogging Config . get Ign oring () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( open . isFalse To True ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext (). framework Packages Ġ+= Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( auto . isTrue ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( stop . isTrue ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Exit Of Process ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexit Ġ= Ġclose () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Standard Error (). echo ( exit ). newline () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġstart (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Started (). isNot True ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext (). start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j uli . isTrue ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Logging Bridge . isNot Started ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogging Bridge . start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġclose (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Started ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext (). stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j uli . isTrue ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Logging Bridge . is Started ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogging Bridge . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġname Of () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġoverride Ġfun Ġto Map Names () Ġ= Ġdict Of (" type " Ġto Ġname Of (), Ġ" open " Ġto Ġopen . isTrue (), Ġ" started " Ġto Ġis Started (), Ġ" bridge " Ġto ĠLogging Bridge . is Started (), Ġ" conf " Ġto Ġdict Of (" list " Ġto Ġlist , Ġ" auto " Ġto Ġauto , Ġ" stop " Ġto Ġstop )) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠ Ġfun Ġis Started (): ĠBoolean Ġ= Ġcontext (). is Started . isTrue () ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġlogger ( name : ĠString ): ĠI Logging Ġ= ĠLogging ( name ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġlogger ( type : ĠClass < *> ): ĠI Logging Ġ= Ġlogger ( type . name ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġlogger ( type : ĠK Class < *> ): ĠI Logging Ġ= Ġlogger ( type . java ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġlogger ( self : ĠAny ): ĠI Logging Ġ= Ġlogger ( self . name Of ()) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinline Ġfun Ġlogger ( no inline Ġfunc : Ġ() Ġ-> ĠUnit ): ĠI Logging Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfunc . name Of () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains ( KT ) Ġ-> Ġlogger ( name . substring Before ( KT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains ( KE ) Ġ-> Ġlogger ( name . substring Before ( KE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġlogger ( name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinline Ġfun Ġmarker ( no inline Ġfunc : Ġ() Ġ-> ĠUnit ): ĠI Marker Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfunc . name Of () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains ( KT ) Ġ-> ĠLogging Marker ( name . substring Before ( KT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains ( KE ) Ġ-> ĠLogging Marker ( name . substring Before ( KE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLogging Marker ( name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġinline Ġfun Ġmarker Of ( no inline Ġfunc : Ġ() Ġ-> ĠUnit ): Ġmu . Marker Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfunc . name Of () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains ( KT ) Ġ-> Ġmarker Of ( name . substring Before ( KT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains ( KE ) Ġ-> Ġmarker Of ( name . substring Before ( KE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġmarker Of ( name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġinline Ġfun Ġmarker Of ( name : ĠString ): Ġmu . Marker Ġ= ĠK Marker Factory . get Marker ( name ) ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġinline Ġfun ĠLogger . logger Of (): ĠK Logger Ġ= ĠKotlin Logging . logger ( this ) ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġfun Ġlogger Of ( name : ĠString ): ĠK Logger Ġ= ĠLoggerFactory . getLogger ( name ). logger Of () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġfun Ġlogger Of ( type : ĠClass < *> ): ĠK Logger Ġ= ĠLoggerFactory . getLogger ( type ). logger Of () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġfun Ġlogger Of ( type : ĠAny ): ĠK Logger Ġ= ĠLoggerFactory . getLogger ( type . java Class ). logger Of () ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġfun Ġcontext () Ġ= ĠLoggerFactory . get I LoggerFactory () Ġas ĠLogger Context ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġinternal Ġfun Ġclassic ( name : ĠCharSequence ) Ġ= Ġwhen Ġ( name . toUpperCase English () Ġ== ĠROOT _ LOGGER _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġcontext (). getLogger ( ROOT _ LOGGER _ NAME ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcontext (). exists ( name . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠ Ġfun Ġget Level () Ġ= Ġget Level ( ROOT _ LOGGER _ NAME ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġget Level ( type : ĠK Logger ) Ġ= Ġget Level ( type . name ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġget Level ( type : ĠClass <* >) Ġ= Ġget Level ( type . name ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġget Level ( type : ĠK Class <* >) Ġ= Ġget Level ( type . java ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġget Level ( name : ĠCharSequence ): ĠLogging Level Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġclassic Ġ= Ġclassic ( name ). level ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġget Level ( ROOT _ LOGGER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLogging Level . from ( classic ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġset Level ( level : ĠLogging Level ) Ġ= Ġset Level ( ROOT _ LOGGER _ NAME , Ġlevel ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġset Level ( type : ĠK Logger , Ġlevel : ĠLogging Level ) Ġ= Ġset Level ( type . name , Ġlevel ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġset Level ( type : ĠClass <* >, Ġlevel : ĠLogging Level ) Ġ= Ġset Level ( type . name , Ġlevel ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġset Level ( type : ĠK Class <* >, Ġlevel : ĠLogging Level ) Ġ= Ġset Level ( type . java , Ġlevel ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġset Level ( name : ĠCharSequence , Ġlevel : ĠLogging Level ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclassic ( name ). level Ġ= Ġlevel . to Level () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġ< R > Ġwith Context ( block : ĠLogger Context . () Ġ-> ĠR ): ĠR Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġscope ( context (), Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġwith Level ( using : ĠLogging Level , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Level ( ROOT _ LOGGER _ NAME , Ġusing , Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġwith Level ( type : ĠClass <* >, Ġusing : ĠLogging Level , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Level ( type . name , Ġusing , Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġwith Level ( type : ĠK Class <* >, Ġusing : ĠLogging Level , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Level ( type . java , Ġusing , Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġwith Level ( type : ĠK Logger , Ġusing : ĠLogging Level , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Level ( type . name , Ġusing , Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġwith Level ( name : ĠCharSequence , Ġusing : ĠLogging Level , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscope ( classic ( name . when Root ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsaved Ġ= Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= Ġusing . to Level () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( cause : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThrow ables . throw n ( cause ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġcause ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= Ġsaved ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġprivate Ġfun ĠCharSequence . when Root (): ĠCharSequence Ġ= Ġif Ġ( toUpperCase English () Ġ== ĠROOT _ LOGGER _ NAME ) ĠROOT _ LOGGER _ NAME Ġelse Ġthis ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġfun Ġto Safe String ( func : ĠLazy Message ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFormat ters . to Safe String ( func ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Framework Dsl ĊĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠ Ġprivate Ġobject ĠLogging Bridge Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Framework Dsl ĊĠĠĠĠĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠĠĠĠĠ Ġfun Ġis Started (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSL F 4 J Bridge Handler . is Installed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( cause : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Framework Dsl ĊĠĠĠĠĠĠĠ Ġ@ Ignore For Serialize ĊĠĠĠĠĠĠĠ Ġfun Ġis Not Started (): ĠBoolean Ġ= Ġis Started (). isNot True () ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Framework Dsl ĊĠĠĠĠĠĠĠ Ġfun Ġstart (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isNot Started ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSL F 4 J Bridge Handler . install () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( cause : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Framework Dsl ĊĠĠĠĠĠĠĠ Ġfun Ġclose (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Started ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSL F 4 J Bridge Handler . uninstall () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( cause : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }