/** Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 ĠS pen cer ĠPark Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġio . github . sp encer park . jupyter . gradle Ċ Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġkotlinx . serialization . json . JsonArray Ċ import Ġkotlinx . serialization . json . Json Configuration Ċ import Ġkotlinx . serialization . json . Json Element Ċ import Ġkotlinx . serialization . json . Json Literal Ċ import Ġkotlinx . serialization . json . JsonObject Ċ import Ġorg . gradle . api . file . Regular File Ċ import Ġorg . gradle . api . tasks . Input Ċ import Ġjava . io . File Ċ Ċ class ĠKernel Json ( ĊĠĠĠĠĠĠĠ Ġ@ Input Ġval Ġinstalled Kernel Jar : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Input Ġval Ġkernel DisplayName : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Input Ġval Ġkernel Language : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Input Ġval Ġinterrupt Mode : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Input Ġval Ġkernel Environment : ĠMap < String , ĠString > Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcompiled Spec : ĠString Ġ= ĠJson ( Json Configuration . Stable . copy ( pretty Print Ġ= Ġtrue )). stringify ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Element . serializer (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJsonObject ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" argv " Ġto ĠJson Array ( listOf (" java ", Ġ"- jar ", Ġinstalled Kernel Jar , Ġ"{ connection _ file } "). map (:: Json Literal )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" display _ name " Ġto ĠJson Literal ( kernel DisplayName ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" language " Ġto ĠJson Literal ( kernel Language ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" interrupt _ mode " Ġto ĠJson Literal ( interrupt Mode ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" env " Ġto ĠJsonObject ( kernel Environment . map Values Ġ{ ĠJson Literal ( it . value ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstalled Kernel Jar : ĠRegular File , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkernel DisplayName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkernel Language : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterrupt Mode : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkernel Environment : ĠMap < String , ĠString > ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstalled Kernel Jar . as File . absolute Path . toString (). replace ( File . separator Char , Ġ'/ '), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkernel DisplayName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkernel Language , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterrupt Mode , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkernel Environment ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġcompiled Spec Ċ } Ċ