CINXE.COM
Kotlin Programming Language
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="icon" href="/assets/images/favicon.svg?v2" type="image/svg+xml"/><link rel="alternate icon" href="/assets/images/favicon.ico?v2" type="image/x-icon"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/images/apple-touch-icon.png?v2"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/images/apple-touch-icon-72x72.png?v2"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/images/apple-touch-icon-114x114.png?v2"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/images/apple-touch-icon-144x144.png?v2"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Kotlin Programming Language</title><meta property="og:title" content="Kotlin Programming Language"/><meta property="og:type" content="website"/><meta property="og:url" content="https://kotlinlang.org/"/><meta property="og:image" content="https://kotlinlang.org/assets/images/open-graph/general.png"/><meta property="og:description" content="Kotlin is a programming language that makes coding concise, cross-platform, and fun. It is Google’s preferred language for Android app development."/><meta name="description" content="Kotlin is a programming language that makes coding concise, cross-platform, and fun. It is Google’s preferred language for Android app development."/><meta property="og:site_name" content="Kotlin"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@kotlin"/><meta name="twitter:title" content="Kotlin Programming Language"/><meta name="twitter:description" content="Kotlin is a programming language that makes coding concise, cross-platform, and fun. It is Google’s preferred language for Android app development."/><meta name="twitter:image:src" content="https://kotlinlang.org/assets/images/open-graph/general.png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><meta name="next-head-count" content="18"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/d784f7161f400b6d.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/d784f7161f400b6d.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/b858096558f75cdf.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/b858096558f75cdf.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/414dd25d6e9d8fce.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/414dd25d6e9d8fce.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/6d34df4f831d69bd.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/6d34df4f831d69bd.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/c30468a552d111ac.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/c30468a552d111ac.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="https://cdn.optimizely.com/js/26633200186.js" defer="" data-nscript="beforeInteractive" crossorigin=""></script><script src="/_next/static/chunks/webpack-cc140b9d1fd75f88.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-467b11a89995b152.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-fa221102ace79229.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-685bde21d80a93a3.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/969-f681d53b78f772f1.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/140-07ac4c27c97fc30a.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/664-5d17be2dcae08a50.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/897-feb2a5abdf14e8d7.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/index-e38c97bc958fdac4.js" defer="" crossorigin=""></script><script src="/_next/static/oZGKW7JJGcqkSD_UxzkHq/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/oZGKW7JJGcqkSD_UxzkHq/_ssgManifest.js" defer="" crossorigin=""></script><style data-href="https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap">@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxjPg.woff) format('woff')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTN1OTk6OThhvAWV8.woff) format('woff');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTPlOTk6OThhvAWV8.woff) format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTOVOTk6OThhvAWV8.woff) format('woff');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTNVOTk6OThhvAWV8.woff) format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTNFOTk6OThhvAWV8.woff) format('woff');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTOlOTk6OThhvA.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style></head><body class="dark-theme"><div id="__next"><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5P98" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div class="layout_wrapper__8bogK"><div class="sticky-header_stickyHeader__8qmss"><header class="ktl-header-module_header-menu_wh71L ktl-header-module_border_paN11 ktl-header-module_darkHeader_YLF76" data-test="header"><div class="ktl-logo-large-module_container_35w4p rs-text-3 rs-text-3_hardness_average rs-text-3_theme_dark"><a class="ktl-logo-large-module_link_AOGas" href="https://kotlinlang.org" aria-label="Kotlin Home Page"><svg width="98" height="22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M43.314 1.067h-4.031L30.5 10.422V1.098H27.27v20.273H30.5v-9.82l8.814 9.82h4.177l-9.397-10.484 9.22-9.82Z" fill="#fff"></path><path d="M54.303 7.186c-1.153-.66-2.45-.994-3.901-.994-1.478 0-2.803.33-3.973.994a7.042 7.042 0 0 0-2.735 2.758c-.65 1.179-.976 2.515-.976 4.01 0 1.494.325 2.835.972 4.01a6.967 6.967 0 0 0 2.716 2.758c1.166.659 2.486.993 3.964.993 1.46 0 2.766-.33 3.923-.993a6.941 6.941 0 0 0 2.694-2.759c.642-1.178.963-2.515.963-4.01 0-1.494-.32-2.83-.963-4.009a6.949 6.949 0 0 0-2.684-2.758Zm-.204 9.328c-.357.74-.859 1.314-1.505 1.73-.646.415-1.392.622-2.233.622-.85 0-1.604-.207-2.26-.623a4.184 4.184 0 0 1-1.528-1.73c-.361-.74-.542-1.589-.542-2.555 0-.966.185-1.815.551-2.555a4.177 4.177 0 0 1 1.537-1.73c.656-.415 1.415-.623 2.278-.623.832 0 1.573.208 2.22.623a4.125 4.125 0 0 1 1.5 1.73c.353.74.529 1.59.529 2.555-.009.962-.19 1.815-.547 2.556ZM64.555 2.836h-3.132v2.52c0 .397-.095.695-.29.889-.194.198-.492.298-.899.298h-1.537v2.664h2.667v7.978c0 .83.167 1.562.506 2.194a3.591 3.591 0 0 0 1.442 1.472c.624.348 1.36.52 2.21.52h2.391v-2.782h-1.798c-.466 0-.841-.163-1.13-.483-.29-.325-.434-.75-.434-1.282V9.207h3.448V6.543h-3.448V2.836h.004ZM73.68.286h-3.186V21.37h3.187V.286ZM80.498.312H77.28v3.273h3.218V.312ZM80.466 6.544H77.28V21.37h3.186V6.544ZM96.67 8.99a4.969 4.969 0 0 0-1.899-2.054c-.818-.492-1.772-.74-2.866-.74-1.161 0-2.178.284-3.05.848-.697.447-1.257 1.052-1.7 1.797l-.018-2.298H84.09V21.37h3.191v-8.298c0-.8.154-1.513.457-2.136a3.39 3.39 0 0 1 1.293-1.45c.556-.342 1.202-.514 1.948-.514.669 0 1.238.14 1.717.42.48.28.841.682 1.085 1.201.249.52.37 1.142.37 1.87v8.907h3.192v-9.355c0-1.138-.226-2.149-.674-3.025Z" fill="#fff"></path><path d="M20 21H0V1h20L9.793 10.855 20 21Z" fill="url(#kotlin-logo-large_svg__a)"></path><defs><radialGradient id="kotlin-logo-large_svg__a" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(19.335 1.822) scale(22.9097)"><stop offset="0.003" stop-color="#EF4857"></stop><stop offset="0.469" stop-color="#D211EC"></stop><stop offset="1" stop-color="#7F52FF"></stop></radialGradient></defs></svg></a><a class="ktl-logo-large-module_version-tag_k12Hw" href="https://github.com/JetBrains/kotlin/releases/tag/v2.0.21" target="_blank">v2.0.21</a></div><nav class="ktl-horizontal-menu-module_nav_gbA7M ktl-horizontal-menu-module_dark-theme_gfxx6"><ul class="ktl-horizontal-menu-module_menu-list_TJnOF"><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><span class="ktl-horizontal-menu-module_menu-item_CXDEW rs-text-2 rs-text-2_theme_dark">Solutions</span><ul class="ktl-horizontal-menu-module_dropdown-menu_jwdWI rs-text-2 rs-text-2_theme_dark"><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/lp/mobile/">Multiplatform</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/lp/server-side/">Server-side</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/docs/data-science-overview.html">Data science</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/docs/android-overview.html">Android</a></li></ul></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><a href="/docs/home.html" class="ktl-horizontal-menu-module_menu-item_CXDEW rs-text-2 rs-text-2_theme_dark">Docs</a></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><a href="/community/" class="ktl-horizontal-menu-module_menu-item_CXDEW rs-text-2 rs-text-2_theme_dark">Community</a></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><a href="/education/" class="ktl-horizontal-menu-module_menu-item_CXDEW rs-text-2 rs-text-2_theme_dark">Teach</a></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><span class="ktl-horizontal-menu-module_menu-item_CXDEW rs-text-2 rs-text-2_theme_dark">Play</span><ul class="ktl-horizontal-menu-module_dropdown-menu_jwdWI rs-text-2 rs-text-2_theme_dark ktl-horizontal-menu-module_dropdown-menu-align-right_YeB-9"><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://play.kotlinlang.org/">Playground</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://play.kotlinlang.org/byExample">Examples</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://play.kotlinlang.org/koans">Koans</a></li></ul></li></ul></nav><button type="button" class="ktl-search-button-module_button_YHJPv ktl-search-button-module_active_lUmdh" data-test="header-search-button" aria-label="Search"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.847 6.861A6.99 6.99 0 0 0 9.587 3a6.997 6.997 0 1 0 4.186 12.601l6.106 6.106 1.414-1.414-6.107-6.106a6.99 6.99 0 0 0 .66-7.326ZM14.587 10a5 5 0 1 1-10.001 0 5 5 0 0 1 10 0Z" fill="currentColor"></path></svg></button></header></div><section class="hero_heroSection__5XxnZ"><div class="ktl-layout ktl-layout--center hero-b"><div class="hero_grid__H0SX3"><div class="hero_content__D8FJt"><h1 class="rs-hero rs-hero_theme_dark hero_heroText__QeApd">Kotlin</h1><p class="rs-subtitle-2 rs-subtitle-2_theme_dark hero_subtitle__8ZpTz">Concise. Multiplatform. Fun.</p><img alt="kotlin" loading="lazy" width="520" height="520" decoding="async" data-nimg="1" class="hero_imageMobile__3isv_" style="color:transparent" src="/_next/static/chunks/images/hero-cover-6dd34ed75729683235a4f47d714a604e.png"/><div class="hero_info__mBdUq"><a data-test="button" href="/docs/getting-started.html" type="button" class="_main_d4ewd2_17 _modeClassic_d4ewd2_168 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 hero_getStartedButton__gq57_">Get started</a><div class="hero_developer__nDjlA"><div class="hero_developerContent__u6hUj"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark hero_developerCaption__wQ_a1">Developed by</div><a href="https://www.jetbrains.com/" target="_blank" rel="noreferrer noopener"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ5IiBoZWlnaHQ9IjMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00My4yNDIgMjAuMjkzYzAgLjQyMy0uMDkuNzk3LS4yNjkgMS4xMjVhMS44NiAxLjg2IDAgMDEtLjc1Ni43NjJjLS4zMy4xOC0uNjk4LjI2OS0xLjEyLjI2OUgzOVYyNS41aDIuNTRjLjk1NSAwIDEuODEyLS4yMTQgMi41NzQtLjY0MmE0LjY3OSA0LjY3OSAwIDAwMS43OTItMS43NzNjLjQzMy0uNzUyLjY1Mi0xLjU5OC42NTItMi41NDRWMTAuNTA5aC0zLjMxNnY5Ljc4NHptOC45MjgtLjkxMWg2Ljk0NnYtMi44MDRINTIuMTd2LTMuMTgxaDcuNjc4di0yLjg4OGgtMTAuOTF2MTQuOTg3aDExLjEyNHYtMi44ODhINTIuMTd2LTMuMjI2em04LjkzMi01LjloNC40NDJ2MTIuMDFoMy4zMTZ2LTEyLjAxaDQuNDIxdi0yLjk3M0g2MS4wOTd2Mi45NzdsLjAwNS0uMDA1em0yMy41MTIgNC41YTMuOTQgMy45NCAwIDAwLS44MzctLjMyM2MuMjI0LS4wNjUuNDM4LS4xNDQuNjM4LS4yNDRhMy4xOCAzLjE4IDAgMDAxLjI5LTEuMTk1Yy4zMDgtLjUxMy40NjctMS4xLjQ2Ny0xLjc2OCAwLS43NjEtLjIwOS0xLjQ0NC0uNjIyLTIuMDQ2LS40MTMtLjU5OC0uOTk2LTEuMDY2LTEuNzQzLTEuNDA0LS43NDctLjMzNC0xLjYwMy0uNTAzLTIuNTYtLjUwM2gtNi42NTZ2MTQuOTg3aDYuNzg2YzEuMDA2IDAgMS45MDItLjE3NCAyLjY5NC0uNTI4Ljc4Ny0uMzUzIDEuNC0uODQxIDEuODM3LTEuNDczLjQzMy0uNjI4LjY1My0xLjM0NS42NTMtMi4xNTEgMC0uNzQyLS4xNy0xLjQwNS0uNTEzLTEuOTkyYTMuNTI1IDMuNTI1IDAgMDAtMS40My0xLjM2NGwtLjAwNC4wMDV6bS02LjgwMi00Ljk1OWgyLjk0M2MuNDA4IDAgLjc2Ny4wNzUgMS4wOC4yMi4zMTQuMTQ0LjU1OC4zNTMuNzMyLjYyNy4xNzUuMjY5LjI2NC41ODcuMjY0Ljk1IDAgLjM2NC0uMDkuNzA4LS4yNjQuOTkyYTEuNzI2IDEuNzI2IDAgMDEtLjczMi42NTIgMi40MSAyLjQxIDAgMDEtMS4wOC4yMjloLTIuOTQzdi0zLjY3NS4wMDV6bTUuMDY5IDkuMDY3Yy0uMTkuMjg0LS40NTguNTAzLS44MDIuNjU4YTIuOTA4IDIuOTA4IDAgMDEtMS4xOTUuMjI5aC0zLjA3MnYtMy44NDRoMy4wNzJjLjQ0NCAwIC44MzcuMDg0IDEuMTg1LjI0OS4zNDQuMTY0LjYxOC4zOTMuODA3LjY5Mi4xOS4yOTkuMjg5LjYzNy4yODkgMS4wMiAwIC4zODQtLjA5NS43MTItLjI4NC45OTZ6bTE0Ljc5OC0yLjY1NGMuODMxLS4zOTggMS40NzQtLjk2IDEuOTMyLTEuNjgzLjQ1OC0uNzIxLjY4Ny0xLjU1OC42ODctMi41MTQgMC0uOTU2LS4yMjQtMS43NjMtLjY3Mi0yLjQ4LS40NDgtLjcxNi0xLjA4Ni0xLjI3LTEuOTA3LTEuNjYyLS44MjItLjM5NC0xLjc3My0uNTg4LTIuODU4LS41ODhoLTYuNTYzdjE0Ljk4N2gzLjMyMVYyMC4wNGgyLjE2MWwzLjA0MyA1LjQ1N2gzLjc4OWwtMy40MjYtNS44NmMuMTctLjA2LjMzOS0uMTI1LjQ5OC0uMmgtLjAwNXptLTEuMDc2LTMuMDYyYTEuNzk4IDEuNzk4IDAgMDEtLjc5MS43MjJjLS4zNDQuMTctLjc0Ny4yNTQtMS4yMS4yNTRoLTIuOTg4di00LjE0N2gyLjk4OGMuNDYzIDAgLjg2Ni4wODQgMS4yMS4yNDkuMzQzLjE2NC42MDcuNDA4Ljc5MS43MTcuMTg1LjMwOC4yOC42NzcuMjggMS4wOTUgMCAuNDE4LS4wOTUuNzg3LS4yOCAxLjF2LjAxek0xMDYuOSAxMC41MWwtNS4zNTIgMTQuOTg3aDMuMzcxbDEuMDYtMy4zMDZoNS41NTdsMS4xMzUgMy4zMDZoMy4zMDZsLTUuNDgyLTE0Ljk4N0gxMDYuOXptLS4xNjkgOS4xNzFsMS43MjMtNS4yODcuMjA0LS45NjEuMjA0Ljk2IDEuODQyIDUuMjg4aC0zLjk3M3ptMTAuMzQ3IDUuODE2aDMuNDI1VjEwLjUxaC0zLjQyNXYxNC45ODd6bTE1LjUxLTQuODVMMTI2LjE0IDEwLjUxaC0zLjIzMnYxNC45ODdoMy4wMjdWMTUuMzZsNi40MTQgMTAuMTM3aDMuMjY2VjEwLjUxaC0zLjAyN3YxMC4xMzd6bTE1Ljc2My0xLjY3OGE0LjQ2NiA0LjQ2NiAwIDAwLTEuMzY0LTEuNTY4IDQuOTUgNC45NSAwIDAwLTIuMDExLS44NDZsLTIuNTUtLjUyM2MtLjM5OC0uMDk1LS43MTctLjI2LS45NTEtLjQ5OGExLjIyOCAxLjIyOCAwIDAxLS4zNTMtLjg5MWMwLS4zMjQuMDg0LS42MDMuMjU5LS44NDIuMTY5LS4yMzkuNDEzLS40MjMuNzIyLS41NTguMzA4LS4xMzQuNjY3LS4xOTkgMS4wNzUtLjE5OS40MDggMCAuNzc3LjA3IDEuMDkxLjIxLjMxMy4xMzkuNTU3LjMzMy43MzEuNTg3LjE3NS4yNTQuMjY0LjUzOC4yNjQuODYxaDMuMzIxYy0uMDE5LS44NzEtLjI2My0xLjY0My0uNzIyLTIuMzEtLjQ1OC0uNjcyLTEuMS0xLjE5NS0xLjkxNi0xLjU3My0uODE3LS4zNzktMS43NTMtLjU2OC0yLjc5OS0uNTY4LTEuMDQ1IDAtMS45NzEuMTk0LTIuNzgzLjU4OC0uODEyLjM5My0xLjQ0OS45MzYtMS45MDIgMS42MzMtLjQ1My42OTctLjY4MiAxLjQ4OC0uNjgyIDIuMzggMCAuNzIyLjE0NCAxLjM3NC40MzggMS45NTFhMy45NTQgMy45NTQgMCAwMDEuMjQgMS40NSA0LjkwNiA0LjkwNiAwIDAwMS44NjIuODAxbDIuNjk5LjU1OGMuNDQzLjEwNC43OTEuMjk5IDEuMDUuNTc3LjI1OS4yOC4zODQuNjIzLjM4NCAxLjA0MSAwIC4zMzQtLjA5NS42MzctLjI4NC45MDFhMS44MjYgMS44MjYgMCAwMS0uNzkyLjYxM2MtLjMzOC4xNDQtLjczNy4yMTQtMS4xOTUuMjE0LS40NTggMC0uODkxLS4wOC0xLjI2NS0uMjRhMS45NCAxLjk0IDAgMDEtLjg2Ni0uNjg2IDEuNzIgMS43MiAwIDAxLS4zMDktMS4wMjFoLTMuMzIxYy4wMTUuOTM2LjI2NCAxLjc1Ny43NTcgMi40NzQuNDg4LjcxMiAxLjE2IDEuMjcgMi4wMTcgMS42NjguODU2LjM5OSAxLjgzNy41OTggMi45NDIuNTk4IDEuMTA2IDAgMi4xMDEtLjIwNCAyLjk1OC0uNjEyLjg2MS0uNDA5IDEuNTI4LS45NzEgMi4wMTEtMS42ODguNDgzLS43MTcuNzIyLTEuNTI5LjcyMi0yLjQzNWE0LjQgNC40IDAgMDAtLjQ4OC0yLjA1MmwuMDEuMDA1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMC4xNyAxLjgzbC04LjM0IDguMzRBNi4yNTIgNi4yNTIgMCAwMDAgMTQuNTlWMjkuNUEyLjUgMi41IDAgMDAyLjUgMzJoMTQuOTFhNi4yNiA2LjI2IDAgMDA0LjQyLTEuODNsOC4zNC04LjM0QTYuMjUyIDYuMjUyIDAgMDAzMiAxNy40MVYyLjVBMi41IDIuNSAwIDAwMjkuNSAwSDE0LjU5YTYuMjYgNi4yNiAwIDAwLTQuNDIgMS44M3oiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xMDY4NV8zNTEyOCkiLz48cGF0aCBkPSJNMjQgOEg0djIwaDIwVjh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTE1IDIzLjVINi41djJIMTV2LTJ6IiBmaWxsPSIjZmZmIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzEwNjg1XzM1MTI4IiB4MT0iLjQyNSIgeTE9IjMxLjM2IiB4Mj0iMzEuMzEiIHkyPSIuOTA1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZGOTQxOSIvPjxzdG9wIG9mZnNldD0iLjQzIiBzdG9wLWNvbG9yPSIjRkYwMjFEIi8+PHN0b3Agb2Zmc2V0PSIuOTkiIHN0b3AtY29sb3I9IiNFNjAwRkYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=" alt="jetbrains logo" class="hero_developerLogo__nQV7v"/> </a></div></div></div></div><img class="hero_imageDesktop__yBAJU" src="/_next/static/chunks/images/hero-cover-6dd34ed75729683235a4f47d714a604e.png" srcSet="/_next/static/chunks/images/hero-cover@2x-0095f955d809bb1d716b7ad41889166b.png 2x" alt="kotlin" height="560" width="560"/></div></div></section><div class="ktl-layout ktl-layout--center"><section class="latest-news_latestNews__YIp7L"><h2 class="latest-news_h__Q6ZWC rs-h2 rs-h2_theme_dark">Latest news</h2><div class="latest-news_news__RGdws"><a href="https://blog.jetbrains.com/kotlin/2024/11/state-of-kotlin-scripting-2024/" class="latest-news_item__3ilvX" target="_blank" rel="noopener noreferrer" style="--ktl-news-position:1;--ktl-news-grid-line:1"><div class="latest-news_image__jLyHP"><picture><source type="image/png" srcSet="/_next/static/chunks/images/news-0-f1a7bc5271a920ac5557285101169197.png, /_next/static/chunks/images/news-0-a7e3b8754d9cf66f16da173386241b7c.png 2x" media="(max-width: 374px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-0-e8f70c30e859a2a8bc868cedefff4142.png, /_next/static/chunks/images/news-0-eb1b9b55089f64bc9be0c21f7d288e6b.png 2x" media="(min-width: 375px) and (max-width: 472px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-0-aada27bc434082f0f06e877d0ddf11fa.png, /_next/static/chunks/images/news-0-d91c6001e2e191a9f24f1952cfb0f166.png 2x" media="(min-width: 473px) and (max-width: 616px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-0-f320398627498d8a8828c284d7360a92.png, /_next/static/chunks/images/news-0-f9d7ddd508a126653509557e3ef743af.png 2x" media="(min-width: 617px) and (max-width: 808px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-0-ee951f8a5d79c70122a73b7409dd6ddb.png, /_next/static/chunks/images/news-0-f29d269461755296a37c3f257dad8c72.png 2x" media="(min-width: 809px) and (max-width: 1000px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-0-73f1f732495e9a08a3b1e99fdeed8d81.png, /_next/static/chunks/images/news-0-a86ec9f709ca40b19864f38e581c16ae.png 2x" media="(min-width: 1001px) and (max-width: 1190px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-0-f320398627498d8a8828c284d7360a92.png, /_next/static/chunks/images/news-0-f9d7ddd508a126653509557e3ef743af.png 2x" media="(min-width: 1191px)"/><img src="/_next/static/chunks/images/news-0-aada27bc434082f0f06e877d0ddf11fa.png" class="latest-news_imageSrc___YbmI" alt="State of Kotlin Scripting 2024"/></picture></div><p class="latest-news_date__ST8lF rs-text-3 rs-text-3_theme_dark">November 19, 2024</p><h3 class="latest-news_title__pylH_ rs-h4 rs-h4_theme_dark">State of Kotlin Scripting 2024</h3><div class="latest-news_text__MK5XJ rs-text-3 rs-text-3_theme_dark"><p class="latest-news_description__JdSQE">TL;DR: Kotlin scripting remains an essential part of the Kotlin infrastructure. We continue to support it in the experimental state, and we are concluding certain experiments and reducing the number of scripting-related technologies that we provide and actively develop. Kotlin scripting is the technology that enables executing Kotlin code as scripts without prior compilation or […]</p></div></a><a href="https://blog.jetbrains.com/amper/2024/11/amper-update-november-2024/" class="latest-news_item__3ilvX" target="_blank" rel="noopener noreferrer" style="--ktl-news-position:2;--ktl-news-grid-line:1"><div class="latest-news_image__jLyHP"><picture><source type="image/png" srcSet="/_next/static/chunks/images/news-1-b47e08b565c08d61108a77bd8df0b057.png, /_next/static/chunks/images/news-1-26857db95c039f223a6aa37071f58e4e.png 2x" media="(max-width: 374px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-1-cc5f513f63c400fe65b112bf80631f35.png, /_next/static/chunks/images/news-1-9864d680caf3fc8fa3fc5e375c3191f6.png 2x" media="(min-width: 375px) and (max-width: 472px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-1-2ee234e10a9fa0f745706601f879b6d4.png, /_next/static/chunks/images/news-1-6d169288e561667c6e4b3bf8949625f8.png 2x" media="(min-width: 473px) and (max-width: 616px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-1-aaea4e338ffcc2c4c8a096ba264372f2.png, /_next/static/chunks/images/news-1-336b5cbb42ab188b0234a3c6771bafb1.png 2x" media="(min-width: 617px) and (max-width: 808px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-1-264b1c08dcdffc2a94f90ee77c7030c6.png, /_next/static/chunks/images/news-1-5656704b1d2e9bffc76861c4b8c0a345.png 2x" media="(min-width: 809px) and (max-width: 1000px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-1-3fc682a68a664c8e85b0f1325051e56e.png, /_next/static/chunks/images/news-1-cc494c2f5e423cbdfb9d57c74a6b2933.png 2x" media="(min-width: 1001px) and (max-width: 1190px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-1-aaea4e338ffcc2c4c8a096ba264372f2.png, /_next/static/chunks/images/news-1-336b5cbb42ab188b0234a3c6771bafb1.png 2x" media="(min-width: 1191px)"/><img src="/_next/static/chunks/images/news-1-2ee234e10a9fa0f745706601f879b6d4.png" class="latest-news_imageSrc___YbmI" alt="Amper Update November 2024 – Project File Tooling, Compose Resources, KSP2, and Android Release Builds"/></picture></div><p class="latest-news_date__ST8lF rs-text-3 rs-text-3_theme_dark">November 5, 2024</p><h3 class="latest-news_title__pylH_ rs-h4 rs-h4_theme_dark">Amper Update November 2024 – Project File Tooling, Compose Resources, KSP2, and Android Release Builds</h3><div class="latest-news_text__MK5XJ rs-text-3 rs-text-3_theme_dark"><p class="latest-news_description__JdSQE">Amper 0.5.0 is now available! With this release, we’ve improved the IDE experience when working with multiple modules and project.yaml files, made nested completion in Amper configuration files more powerful, introduced support for Compose Resources and KSP2, improved Android release builds, and more! For the full list of changes and bug fixes in Amper 0.5.0, […]</p></div></a><a href="https://blog.jetbrains.com/kotlin/2024/10/kotlin-multiplatform-development-roadmap-for-2025/" class="latest-news_item__3ilvX" target="_blank" rel="noopener noreferrer" style="--ktl-news-position:3;--ktl-news-grid-line:2"><div class="latest-news_image__jLyHP"><picture><source type="image/png" srcSet="/_next/static/chunks/images/news-2-40a8e007e50ecbc23851885603acdfd0.png, /_next/static/chunks/images/news-2-238295d6cf5ef97d3156d8e2559d282e.png 2x" media="(max-width: 374px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-2-674fb4bada0f316c90cbf247d5f00847.png, /_next/static/chunks/images/news-2-f18b0198865bcae292ee3bc5a4c2473f.png 2x" media="(min-width: 375px) and (max-width: 472px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-2-0cfdbac335b101d08e2aeba7f3447cc0.png, /_next/static/chunks/images/news-2-d42e90c8621008be81cb51056fd07f66.png 2x" media="(min-width: 473px) and (max-width: 616px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-2-a0f5b02411ca5cdbf6a1fc644a63e4e8.png, /_next/static/chunks/images/news-2-027e36f8f94772dd2b9e9c8b655e55e2.png 2x" media="(min-width: 617px) and (max-width: 808px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-2-7e49b7c9b6f7b7937de1229f16ada3d9.png, /_next/static/chunks/images/news-2-8d468fa60ddc38102f81df1d12e00b4a.png 2x" media="(min-width: 809px) and (max-width: 1000px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-2-ee4edca5850cda5766cec05469f7304a.png, /_next/static/chunks/images/news-2-19875301ec2dcec5982b09425f68c79b.png 2x" media="(min-width: 1001px) and (max-width: 1190px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-2-a0f5b02411ca5cdbf6a1fc644a63e4e8.png, /_next/static/chunks/images/news-2-027e36f8f94772dd2b9e9c8b655e55e2.png 2x" media="(min-width: 1191px)"/><img src="/_next/static/chunks/images/news-2-0cfdbac335b101d08e2aeba7f3447cc0.png" class="latest-news_imageSrc___YbmI" alt="Kotlin Multiplatform Development Roadmap for 2025"/></picture></div><p class="latest-news_date__ST8lF rs-text-3 rs-text-3_theme_dark">October 28, 2024</p><h3 class="latest-news_title__pylH_ rs-h4 rs-h4_theme_dark">Kotlin Multiplatform Development Roadmap for 2025</h3><div class="latest-news_text__MK5XJ rs-text-3 rs-text-3_theme_dark"><p class="latest-news_description__JdSQE">As Kotlin Multiplatform is now firmly established, development teams across the globe – including major companies like Shopify, Forbes, Haier, and Zürcher Kantonalbank – can harness its power in production environments. During Google I/O 2024 in May, Google announced their official support for Kotlin Multiplatform for sharing business logic across Android and iOS. This and […]</p></div></a><a href="https://blog.jetbrains.com/kotlin/2024/10/kodee-s-kotlin-roundup-exciting-news-special-announcement/" class="latest-news_item__3ilvX" target="_blank" rel="noopener noreferrer" style="--ktl-news-position:4;--ktl-news-grid-line:2"><div class="latest-news_image__jLyHP"><picture><source type="image/png" srcSet="/_next/static/chunks/images/news-3-d62c47940b38411e59e30c602a343344.png, /_next/static/chunks/images/news-3-fe3b52a12d9545da48204a037cb8d432.png 2x" media="(max-width: 374px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-3-f9f3ec2d5973b73e0e4a1a5846bc89ed.png, /_next/static/chunks/images/news-3-9a38f37e40d09a81dc1f90e65f1b94ba.png 2x" media="(min-width: 375px) and (max-width: 472px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-3-2ae85d6229d9db1affc928c0dfbb6f43.png, /_next/static/chunks/images/news-3-d98035cda336838022113863749b7038.png 2x" media="(min-width: 473px) and (max-width: 616px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-3-c63f3f3c94f848487cf3eabcc5eb68a2.png, /_next/static/chunks/images/news-3-ea1929d9b030d25384e6ed16e7c8d5db.png 2x" media="(min-width: 617px) and (max-width: 808px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-3-8b210c47cee97b151ebbfc901938abaf.png, /_next/static/chunks/images/news-3-a5a3109984ca69f47815465d7d4a00cb.png 2x" media="(min-width: 809px) and (max-width: 1000px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-3-2c40b89d1b1b3516b13e04bbff250246.png, /_next/static/chunks/images/news-3-c1aa14cee42bcab9b124a67368f0d87c.png 2x" media="(min-width: 1001px) and (max-width: 1190px)"/><source type="image/png" srcSet="/_next/static/chunks/images/news-3-c63f3f3c94f848487cf3eabcc5eb68a2.png, /_next/static/chunks/images/news-3-ea1929d9b030d25384e6ed16e7c8d5db.png 2x" media="(min-width: 1191px)"/><img src="/_next/static/chunks/images/news-3-2ae85d6229d9db1affc928c0dfbb6f43.png" class="latest-news_imageSrc___YbmI" alt="Kodee’s Kotlin Roundup: Exciting News + Special Announcement!"/></picture></div><p class="latest-news_date__ST8lF rs-text-3 rs-text-3_theme_dark">October 17, 2024</p><h3 class="latest-news_title__pylH_ rs-h4 rs-h4_theme_dark">Kodee’s Kotlin Roundup: Exciting News + Special Announcement!</h3><div class="latest-news_text__MK5XJ rs-text-3 rs-text-3_theme_dark"><p class="latest-news_description__JdSQE">Hello, it’s Kodee here, your favorite Kotlin mascot. I thought, who would be better to bring you all the exciting news from the Kotlin ecosystem than the cutest member of the team – me. So, without further ado, let’s jump right in!</p></div></a></div><a data-test="button" href="https://blog.jetbrains.com/kotlin/" type="button" class="_main_d4ewd2_17 _modeOutline_d4ewd2_389 _sizeL_d4ewd2_106 _alignIconRight_d4ewd2_81 _dark_d4ewd2_62 _withIcon_d4ewd2_144 latest-news_blog__XuZEc"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M6.27 19.137l8.803-8.804.016.016 3.625 3.625L19 5l-8.9.36 3.56 3.559-8.805 8.804 1.414 1.414z"></path></svg>Kotlin blog</a></section></div><section class="why-kotlin_whyKotlin__bkFU_" data-test="main-page-why-kotlin"><div class="ktl-layout ktl-layout--center"><div class="rs-h2 rs-h2_theme_dark why-kotlin_sectionTitle__N_wt2">Why Kotlin?</div></div><div class="why-kotlin_whyKotlinMobileWrapper__VqydL"><div class="ktl-layout ktl-layout--center"><div class="why-kotlin_codeExamples__R3vHx"><div class="why-kotlin_navigationBar__pFSuQ"><div class="why-kotlin_mobileMenuButton__8sNkM"><button class="ktl-nav-item-module_navItem_gRy22 ktl-nav-item-module_rightIcon_XlxMF"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17"><path d="M19.004 9h-14l7 8 7-8z"></path></svg><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr ktl-nav-item-module_titleWithIcon_CVqpS ktl-nav-item-module_titleWithIconRight_FwEnm">Simple</div></button><div class="ktl-popup-module_popup_b34tS ktl-sidebar-module_popup_bidR1 ktl-sidebar-module_dark_GNaUl ktl-sidebar-module_close_lN33m" tabindex="-1" role="none"><div class="ktl-sidebar-module_content_SzdiT"><div class="ktl-menu-header-module_dark_jdymL ktl-menu-header-module_header_nm8jO"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark">Code examples</div><button data-test="button" aria-label="close menu" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeM_d4ewd2_99 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-menu-header-module_trigger_FbJ59"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M5.67 19.751l6.342-6.34 6.34 6.34 1.41-1.409-6.341-6.34 6.34-6.341-1.408-1.409-6.341 6.341L5.67 4.251 4.26 5.66l6.342 6.342-6.34 6.34 1.408 1.409z"></path></svg></button></div><ul class="_keyboardNavigationDisabled_12gtz37_83 ktl-popup-module_menu_wZMEB"><li class="_wrapper_12gtz37_8" data-test="menu-item__wrapper"><button class="_menuItem_12gtz37_12 _placementLeft_12gtz37_244 _modeClassic_12gtz37_99 _sizeM_12gtz37_56 _themeDark_12gtz37_78 _selected_12gtz37_111 _highlighted_12gtz37_146 _disableCursor_12gtz37_141" data-test="menu-item" tabindex="0" codeExample="fun main() { val name = "stranger" // Declare your first variable println("Hi, $name!") // ...and use it! print("Current count:") for (i in 0..10) { // Loop over a range from 0 to 10 print(" $i") } }"><span class="_content_12gtz37_40">Simple</span></button></li><li class="_wrapper_12gtz37_8" data-test="menu-item__wrapper"><button class="_menuItem_12gtz37_12 _placementLeft_12gtz37_244 _modeClassic_12gtz37_99 _sizeM_12gtz37_56 _themeDark_12gtz37_78 _highlighted_12gtz37_146 _disableCursor_12gtz37_141" data-test="menu-item" tabindex="0" codeExample="import kotlinx.coroutines.* suspend fun main() { // A function that can be suspended and resumed later val start = System.currentTimeMillis() coroutineScope { // Create a scope for starting coroutines for (i in 1..10) { launch { // Start 10 concurrent tasks delay(3000L - i * 300) // Pause their execution log(start, "Countdown: $i") } } } // Execution continues when all coroutines in the scope have finished log(start, "Liftoff!") } fun log(start: Long, msg: String) { println("$msg " + "(on ${Thread.currentThread().name}) " + "after ${(System.currentTimeMillis() - start)/1000F}s") }"><span class="_content_12gtz37_40">Asynchronous</span></button></li><li class="_wrapper_12gtz37_8" data-test="menu-item__wrapper"><button class="_menuItem_12gtz37_12 _placementLeft_12gtz37_244 _modeClassic_12gtz37_99 _sizeM_12gtz37_56 _themeDark_12gtz37_78 _highlighted_12gtz37_146 _disableCursor_12gtz37_141" data-test="menu-item" tabindex="0" codeExample="abstract class Person(val name: String) { abstract fun greet() } interface FoodConsumer { fun eat() fun pay(amount: Int) = println("Delicious! Here's $amount bucks!") } class RestaurantCustomer(name: String, val dish: String) : Person(name), FoodConsumer { fun order() = println("$dish, please!") override fun eat() = println("*Eats $dish*") override fun greet() = println("It's me, $name.") } fun main() { val sam = RestaurantCustomer("Sam", "Mixed salad") sam.greet() // An implementation of an abstract function sam.order() // A member function sam.eat() // An implementation of an interface function sam.pay(10) // A default implementation in an interface }"><span class="_content_12gtz37_40">Object-oriented</span></button></li><li class="_wrapper_12gtz37_8" data-test="menu-item__wrapper"><button class="_menuItem_12gtz37_12 _placementLeft_12gtz37_244 _modeClassic_12gtz37_99 _sizeM_12gtz37_56 _themeDark_12gtz37_78 _highlighted_12gtz37_146 _disableCursor_12gtz37_141" data-test="menu-item" tabindex="0" codeExample="fun main() { // Who sent the most messages? val frequentSender = messages .groupBy(Message::sender) .maxByOrNull { (_, messages) -> messages.size } ?.key // Get their names println(frequentSender) // [Ma] // Who are the senders? val senders = messages .asSequence() // Make operations lazy (for a long call chain) .filter { it.body.isNotBlank() && !it.isRead } // Use lambdas... .map(Message::sender) // ...or member references .distinct() .sorted() .toList() // Convert sequence back to a list to get a result println(senders) // [Adam, Ma] } data class Message( // Create a data class val sender: String, val body: String, val isRead: Boolean = false, // Provide a default value for the argument ) val messages = listOf( // Create a list Message("Ma", "Hey! Where are you?"), Message("Adam", "Everything going according to plan today?"), Message("Ma", "Please reply. I've lost you!"), )"><span class="_content_12gtz37_40">Functional</span></button></li><li class="_wrapper_12gtz37_8" data-test="menu-item__wrapper"><button class="_menuItem_12gtz37_12 _placementLeft_12gtz37_244 _modeClassic_12gtz37_99 _sizeM_12gtz37_56 _themeDark_12gtz37_78 _highlighted_12gtz37_146 _disableCursor_12gtz37_141" data-test="menu-item" tabindex="0" codeExample="import org.junit.Test // Tests import kotlin.test.* // The following example works for JVM only class SampleTest { @Test fun `test sum`() { // Write test names with whitespaces in backticks val a = 1 val b = 41 assertEquals(42, sum(a, b), "Wrong result for sum($a, $b)") } @Test fun `test computation`() { assertTrue("Computation failed") { setup() // Use lambda returning the test subject compute() } } } fun sum(a: Int, b: Int) = a + b // Sources fun setup() {} fun compute() = true" targetPlatform="junit"><span class="_content_12gtz37_40">Ideal for tests</span></button></li><li class="_wrapper_12gtz37_8" data-test="menu-item__wrapper"><button class="_menuItem_12gtz37_12 _placementLeft_12gtz37_244 _modeClassic_12gtz37_99 _sizeM_12gtz37_56 _themeDark_12gtz37_78 _highlighted_12gtz37_146 _disableCursor_12gtz37_141" data-test="menu-item" tabindex="0"><span class="_content_12gtz37_40">Open in Playground</span></button></li></ul></div></div></div><div class="why-kotlin_tabList__jiaTT"><button class="ktl-nav-item-module_navItem_gRy22 ktl-nav-item-module_navItemActive_gI8Nv"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr">Simple</div></button><button class="ktl-nav-item-module_navItem_gRy22"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr">Asynchronous</div></button><button class="ktl-nav-item-module_navItem_gRy22"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr">Object-oriented</div></button><button class="ktl-nav-item-module_navItem_gRy22"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr">Functional</div></button><button class="ktl-nav-item-module_navItem_gRy22"><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr">Ideal for tests</div></button></div><div class="why-kotlin_controlButtons__Iu3rI"><div class="why-kotlin_openInPlaygoundButton__dclFO"><button class="ktl-nav-item-module_navItem_gRy22"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17"><path d="M5.828 12.006l4.293 4.325-1.414 1.425L3 12.006l5.707-5.75 1.414 1.424-4.293 4.326zm8.05-4.326l1.415-1.424L21 12.006l-5.707 5.75-1.414-1.425 4.293-4.325-4.293-4.326z"></path></svg><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr ktl-nav-item-module_titleWithIcon_CVqpS">Open in Playground</div></button></div><button class="ktl-nav-item-module_navItem_gRy22"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17"><path d="M8 5v14l11-7L8 5z"></path></svg><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_dark ktl-nav-item-module_title_9VXwr ktl-nav-item-module_titleWithIcon_CVqpS">Run</div></button></div></div><div class="tab-content kotlin-code-examples-section"><div><div class="code-block_codeBlockContainer__QP9mu" tabindex="-1"><pre class="code-block_code__4nlla">fun main() { val name = "stranger" // Declare your first variable println("Hi, $name!") // ...and use it! print("Current count:") for (i in 0..10) { // Loop over a range from 0 to 10 print(" $i") } }</pre><div class="code-block_buttonWrapper__4oKUk"><button data-test="button" type="button" class="_main_d4ewd2_17 _modeRock_d4ewd2_241 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _light_d4ewd2_59">Edit code example</button></div><div></div></div></div></div></div><a data-test="button" href="docs/getting-started.html" type="button" class="_main_d4ewd2_17 _modeOutline_d4ewd2_389 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 why-kotlin_getStartedButton__3KRyj">Get started</a></div></div></section><div class="index_evenSection__xNO9T"><div class="ktl-layout ktl-layout--center"><div class="kotlin-usage-highlights_kotlinUsageHighlights__QSJy7"><h2 class="rs-h2 rs-h2_theme_light kotlin-usage-highlights_title__LNYUd">Kotlin in action</h2><div class="kotlin-usage-highlights_container__B55Mi"><a href="https://medium.com/mcdonalds-technical-blog/mobile-multiplatform-development-at-mcdonalds-3b72c8d44ebc" target="_blank" rel="noreferrer noopener" class="_card_1xmqlbh_6 _themeLight_1xmqlbh_40 _modeClassic_1xmqlbh_59 _paddings16_1xmqlbh_197 _bordersRadius8_1xmqlbh_213 _withStaticBorder_1xmqlbh_43 _withStatesBorder_1xmqlbh_81 kotlin-usage-highlights_card__PsU0z"><div class="kotlin-usage-highlights_cardContent__54kf1"><div class="kotlin-usage-highlights_logoWrapper___n53u"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjIgMEEzLjIgMy4yIDAgMDAwIDMuMnY0MS42QTMuMiAzLjIgMCAwMDMuMiA0OGg1Ni45NDZhMy4yIDMuMiAwIDAwMy4yLTMuMlYzLjJhMy4yIDMuMiAwIDAwLTMuMi0zLjJIMy4yeiIgZmlsbD0iI0Q1MkIxRSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjYuNzg2IDIxLjY1OWMuODYxLTYuMzc0IDMuNzAzLTE3Ljg3IDkuMTIyLTE3Ljg3IDYuMzI2IDAgMTMuNzYgMjEuMjUyIDEzLjc1OCAzOC44NDVoLTUuODM0YzAtMTguNDUzLTQuNTItMzUuMDgtNy43NzItMzUuMDgtMy4zOTMgMC02LjM2NiAxMS4zMS02LjM2NiAzMi44NTdoLTUuODI2YzAtMjEuNTQ4LTIuOTU1LTMyLjg1Ny02LjM2Ni0zMi44NTctMy4yNDYgMC03Ljc2MyAxNi42My03Ljc2MyAzNS4wOEgzLjkwNWMuMDA2LTE3LjYwOSA3LjQyLTM4Ljg0NyAxMy43NTgtMzguODQ0IDUuNDExLjAwMSA4LjI1NCAxMS40OTQgOS4xMjMgMTcuODY5eiIgZmlsbD0iI0ZEQzgyRiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjIuOTczIDM1LjU2NGgyNi44NzJ2LTYuNzkxSDIyLjk3M3Y2Ljc5eiIgZmlsbD0iI0Q1MkIxRSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDcuMTM1IDM0Ljg4MmgxLjY5VjI5LjMyaC0xLjY5djUuNTYzek01NS4wNDQgMjkuMzJoMS4xNTJsLS4zOTEgMS41MTVoLS44MzhsLjA3Ny0xLjUxNnpNNTguMTggMzAuMTQzYzEuMTI1IDAgMi4xODEuMjg0IDIuMTg3IDEuMzg4SDU4Ljc2YzAtLjM4LS4yMjItLjU1My0uNTk3LS41NTMtLjIyMyAwLS41MjMuMDkyLS41MjMuNDQgMCAuNTguOTE1LjQ2NCAxLjY5Mi42OTQuNjk4LjIwNyAxLjE4MS42MjQgMS4xODEgMS4yOTYgMCAxLjAzLS44MDggMS42LTIuMzM0IDEuNjA2LTEuNjAxLjAwNi0yLjIwMy0uNTcxLTIuMjA4LTEuNjA2aDEuNjI3YzAgLjM5LjI0My42MjMuNTg2LjYyMy40MSAwIC41OTctLjE1Ni41OTctLjQ0NiAwLS42MDUtMS4xMjItLjU5LTEuNzgzLS44MDYtLjQ1LS4xNDctLjg1OS0uNDgtLjg1OS0xLjE4OSAwLS41OS40NDQtMS40NDcgMi4wNC0xLjQ0N3pNMjMuNTUgMzMuMTk2Yy0uMjgyIDEuMTA2LTEuMTk5IDEuODIzLTIuMzQzIDEuODIzLTEuMzgyIDAtMi40MzMtMS4wNDUtMi40MzEtMi41NTggMC0xLjUxLjkzNS0yLjU1NiAyLjQzLTIuNTU4IDEuMjQxIDAgMi4wOTUuNzIgMi4zNTEgMS44MjdoLTEuNTgyYy0uMTIxLS4zMzItLjM1NS0uNTkyLS43NjgtLjU5Mi0uNjk4IDAtLjg4My43NC0uODgyIDEuMzIzIDAgLjU4NC4xODQgMS4zMjQuODgyIDEuMzI0LjQxMiAwIC42NDUtLjI1OC43NjYtLjU4OWgxLjU3NnpNMTEuODgzIDI5LjMyaDIuMDJsLjg4IDMuMjg2Ljg4LTMuMjg2aDIuMDJsLjg4NCA1LjdIMTYuOWwtLjQ0LTMuMzMyLS45MSAzLjMzMWgtMS41MzRsLS45MS0zLjMzLS40NCAzLjMzaC0xLjY2OWwuODg2LTUuN3pNMzcuNzk2IDMyLjE1N3YyLjcyNmgtMS42NzJ2LTQuODZoMS42NzJ2LjM4Yy40MjMtLjMzLjgwNi0uNSAxLjY3My0uNS45NDIgMCAxLjcwMi42MyAxLjcwMiAxLjI5MXYzLjY5aC0xLjY4NHYtMi42NzZjLjAwMS0uNDQ0LS4zOTctLjgwNy0uODMtLjgwNy0uNTU3IDAtLjgzNC40OTMtLjg2Ljc1NnpNNTIuNzEgMzAuNTA1di0xLjE4NmgxLjY5MXY1LjU2M2gtMS42OXYtLjI3Yy0uMjIzLjItLjUxNC40MDYtMS4yNDMuNDA2LS44MiAwLTIuMTIyLS40NTYtMi4xMjMtMi40MTMtLjAwMS0xLjk1NSAxLjMwMi0yLjQ2MiAyLjIyOS0yLjQ2Mi42NzMgMCAuOTkxLjIzMyAxLjEzNy4zNjJ6bS0xLjc1NCAyLjFjMCAuNzYuMzU0IDEuMjQ3LjkzNSAxLjI0Ny4zNDkgMCAuNjQtLjE1Mi44Mi0uNDd2LTEuNDU5Yy0uMDktLjMyMi0uNDAzLS41Ni0uODItLjU2LS41ODIgMC0uOTM1LjQ4MS0uOTM1IDEuMjQyek0zMC41MTIgMzIuNDYyYy4wMDItMS41MTEuOTgxLTIuNTU3IDIuNTUtMi41NTggMS41Ny0uMDAyIDIuNTUgMS4wNDcgMi41NSAyLjU1OC4wMDIgMS41MTItLjk4IDIuNTU4LTIuNTUgMi41NTgtMS41NjcgMC0yLjU1MS0xLjA0Ni0yLjU1LTIuNTU4em0zLjUyIDBjMC0uNTg0LS4yMDItMS4zMjQtLjk3LTEuMzI0LS43NjYgMC0uOTY4Ljc0LS45NjggMS4zMjQgMCAuNTg0LjIwMiAxLjMyMy45NjggMS4zMjMuNzY4IDAgLjk3LS43NC45Ny0xLjMyM3pNMjQuMTM4IDI5LjMyaDIuOTA1YzEuODE4IDAgMy4wNTYgMS4xMjggMy4wNTYgMi44NSAwIDEuNzItMS4yMzggMi44NS0zLjA1NiAyLjg1aC0yLjkwNXYtNS43em0xLjkyMiA0LjM1MmguODc4Yy41NyAwIDEuMjYyLS4zNDcgMS4yNjItMS41MDJzLS42OTMtMS41MDMtMS4yNjItMS41MDNoLS44Nzh2My4wMDV6TTQ0LjE4NyAyOS45MDRjMS4yLS4wMDEgMi4xODkuNDQgMi4yNjYgMS40MXYzLjU2OEg0NC43NnYtLjQ4Yy0uNDExLjM1MS0uODIuNjE1LTEuNTYuNjE1LS44NjIgMC0xLjU1Ni0uNjgtMS41NTYtMS40NzkgMC0uNzk4LjQ5Mi0xLjY4NSAyLjQ2LTEuNjg1LjUwOCAwIC42NTUtLjIuNjU2LS40MzcgMC0uMjkyLS4zMzYtLjQ1NS0uNjE4LS40NTVzLS42MDIuMTE3LS42MDIuNDIzaC0xLjU4NWMwLS43MTcuNDgyLTEuNDc4IDIuMjMtMS40OHptLS4wOTQgMi43MzljLS4zOSAwLS43NTEuMjA4LS43NTEuNjA3IDAgLjI1OS4xNTIuNDgyLjU1MS40ODIuMzgyIDAgLjc5LS4yMjcuODY4LS42OTZ2LS40NDVjLS4xMy4wNy0uNDIxLjA1Mi0uNjY4LjA1MnoiIGZpbGw9IiNmZmYiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUyLjI1MiAzOC44NGgxLjA0Yy41MTQgMCAuODU2LjI3Ny44NTYuNjQyIDAgLjMzNy0uMjYuNTU4LS41OC41ODZ2LjAxMWMuNDkyLjE2Ni41NjMuNTA4LjU3Ljk3M2gtLjQ2NWMtLjAxNy0uNTU5LS4xMzktLjgwMi0uNjMtLjgwMmgtLjM4MnYuODAyaC0uNDA5VjM4Ljg0em0uNDEgMS4wNTdoLjQ4NmMuMzgxIDAgLjUzNi0uMTMzLjUzNi0uMzgyIDAtLjE4OC0uMTE2LS4zMi0uNDctLjMyaC0uNTUzdi43MDJ6bS40NDEtMS44MjRjMS4wNSAwIDEuOTAyLjg0NSAxLjkwMiAxLjkwMWExLjg5OCAxLjg5OCAwIDAxLTEuOTAyIDEuOTAxIDEuODk4IDEuODk4IDAgMDEtMS45LTEuOTAxYzAtMS4wNTYuODUtMS45MDEgMS45LTEuOTAxem0wIDMuNTk4YTEuNjk3IDEuNjk3IDAgMTAwLTMuMzk1IDEuNjk3IDEuNjk3IDAgMDAwIDMuMzk1eiIgZmlsbD0iI0ZEQzgyRiIvPjwvc3ZnPg==" alt="McDonald's" class="kotlin-usage-highlights_logo__rton8"/></div><span class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light kotlin-usage-highlights_text__GGMbl">McDonald's leverages Kotlin Multiplatform (KMP) for their global mobile app, enabling them to build a codebase that can be shared across platforms, removing the need for codebase redundancies.</span><span class="kotlin-usage-highlights_tag__swMJw"><span data-test="tag" class="_main_2otkwy_25 _sizeXs_2otkwy_54 _alignIconLeft_2otkwy_46 _sizeXs_6cvhja_9" style="color:rgba(25,25,28,0.7);background-color:rgba(25,25,28,0.1)">Kotlin Multiplatform</span></span></div></a><a href="https://talkingkotlin.com/qldb/" target="_blank" rel="noreferrer noopener" class="_card_1xmqlbh_6 _themeLight_1xmqlbh_40 _modeClassic_1xmqlbh_59 _paddings16_1xmqlbh_197 _bordersRadius8_1xmqlbh_213 _withStaticBorder_1xmqlbh_43 _withStatesBorder_1xmqlbh_81 kotlin-usage-highlights_card__PsU0z"><div class="kotlin-usage-highlights_cardContent__54kf1"><div class="kotlin-usage-highlights_logoWrapper___n53u"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzYiIGhlaWdodD0iNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwMTU1XzYwNTIwKSI+PHBhdGggZD0iTTIxLjEzMyAxNS45OTlhNy4yMyA3LjIzIDAgMDAuMjc1IDIuMTdjLjIyMS42MDUuNDg4IDEuMTkyLjc5OCAxLjc1Ny4xMS4xNjguMTcxLjM2Mi4xNzUuNTYxYS45NzYuOTc2IDAgMDEtLjQ3NC43MzJsLTEuNTcyIDEuMDI1Yy0uMTkuMTMzLS40MTUuMjEtLjY0OC4yMi0uMjg0LS4wMi0uNTUxLS4xNDItLjc0OC0uMzQyYTcuNTYyIDcuNTYyIDAgMDEtLjg5OC0xLjE0N2MtLjI1LS40MTUtLjUtLjg3OC0uNzc0LTEuNDM5LTEuOTQ1IDIuMjQ0LTQuMzkgMy4zNjYtNy4zMzIgMy4zNjYtMi4wOTYgMC0zLjc2Ny0uNTg1LTQuOTg5LTEuNzU2LTEuMjIyLTEuMTctMS44NDUtMi43MzItMS44NDUtNC42ODQgMC0yLjA3My43NDgtMy43NTYgMi4yNy01LjAyNSAxLjUyLTEuMjY4IDMuNTQxLTEuOTAyIDYuMTEtMS45MDIuODg1LjAwNyAxLjc2OC4wNzIgMi42NDQuMTk1LjkyMy4xMjIgMS44Ny4zMTcgMi44NjguNTM3VjguNDg2YzAtMS44NTQtLjM5OS0zLjE0Ny0xLjE3Mi0zLjkwMy0uNzk4LS43NTYtMi4xNDUtMS4xMjItNC4wNjYtMS4xMjItLjkwNyAwLTEuODEyLjEwNi0yLjY5My4zMTctLjkxNy4yMTMtMS44MTcuNDktMi42OTQuODMtLjI4NC4xMjMtLjU3NS4yMy0uODczLjMxNmExLjU2IDEuNTYgMCAwMS0uNC4wNzNjLS4zNDggMC0uNTIzLS4yNDMtLjUyMy0uNzU2VjMuMDQ2YTEuNTE1IDEuNTE1IDAgMDEuMTc1LS44NTRjLjE4OC0uMjIyLjQyNy0uMzk4LjY5OC0uNTEyIDEtLjQ4NCAyLjA1NS0uODUzIDMuMTQzLTEuMDk4YTE1LjQ0NCAxNS40NDQgMCAwMTMuODktLjQ2M2MyLjk2OSAwIDUuMTM5LjY1OCA2LjUzNSAxLjk3NiAxLjM3MiAxLjMxNyAyLjA3IDMuMzE3IDIuMDcgNlYxNmguMDV6bS0xMC4xMjYgMy43MDhhOC4yNTIgOC4yNTIgMCAwMDIuNTctLjQ0IDUuNTY2IDUuNTY2IDAgMDAyLjM2OC0xLjU2Yy40MDItLjQ1LjY5My0uOTg0Ljg0OS0xLjU2MmE4LjU2NCA4LjU2NCAwIDAwLjI0OS0yLjEyMnYtMS4wMjRhMjEuMjY2IDIxLjI2NiAwIDAwLTIuMjk1LS40MTUgMTkuMjE4IDE5LjIxOCAwIDAwLTIuMzQ0LS4xNDZjLTEuNjcxIDAtMi44OTMuMzE3LTMuNzE3Ljk3NS0uODIzLjY1OS0xLjIyMiAxLjU4Ni0xLjIyMiAyLjgwNSAwIDEuMTQ3LjMgMiAuOTIzIDIuNTg2LjU5OS42MSAxLjQ3Mi45MDMgMi42Mi45MDN6bTIwLjAyOCAyLjYzNGExLjQxNSAxLjQxNSAwIDAxLS45NDgtLjI0NCAxLjk3NiAxLjk3NiAwIDAxLS41MjMtLjk1MUwyMy43MDIgMi4yOWE0LjE5NCA0LjE5NCAwIDAxLS4yMjQtLjk3Ni41MjQuNTI0IDAgMDEuMTQ2LS40NDguNTQ5LjU0OSAwIDAxLjQ1My0uMTYyaDIuNDQ0Yy40NzQgMCAuNzk4LjA3My45NzMuMjQ0LjE5OS4xNDcuMzQ5LjQ4OC40OTguOTUybDQuMTkgMTYuMTQ4TDM2LjA3MyAxLjljLjEyNS0uNDg4LjI3NS0uODA1LjQ3NC0uOTUyLjMtLjE3OS42NDgtLjI2NC45OTgtLjI0NGgxLjk5NWMuNDc0IDAgLjc5OC4wNzMuOTk4LjI0NC4yNi4yNTguNDI3LjU5Mi40NzQuOTUybDMuOTQgMTYuMzQzTDQ5LjI2OSAxLjljLjA3OS0uMzU0LjI1LS42ODIuNDk4LS45NTIuMjktLjE4LjYzLS4yNjUuOTczLS4yNDRoMi4zMmEuNTY2LjU2NiAwIDAxLjQ2Ni4xNTQuNTQuNTQgMCAwMS4xNTcuNDU2IDMuNDEyIDMuNDEyIDAgMDEtLjIyNCAxTDQ3LjQ0NyAyMS4xN2MtLjE1LjQ4OC0uMzI0LjgwNS0uNTI0Ljk1MmExLjYyMyAxLjYyMyAwIDAxLS45NDguMjQ0SDQzLjgzYy0uNDc0IDAtLjc5OC0uMDc0LS45OTctLjI0NGExLjcxNCAxLjcxNCAwIDAxLS40NzQtLjk3NkwzOC40OTMgNS40MTJsLTMuODQxIDE1LjcxYTEuODg2IDEuODg2IDAgMDEtLjQ3NC45NzVjLS4yOTQuMTktLjY0Ny4yNzctLjk5OC4yNDRoLTIuMTQ1em0zMi4wNS42NTlhMTYuODU1IDE2Ljg1NSAwIDAxLTMuODQtLjQ0Yy0xLjI0OC0uMjkyLTIuMjItLjYxLTIuODctLjk3NWExLjc4NCAxLjc4NCAwIDAxLS43NzItLjY4MyAxLjY4OCAxLjY4OCAwIDAxLS4xNS0uNjgzdi0xLjI0NGMwLS41MTIuMi0uNzU2LjU3NC0uNzU2LjE1MiAwIC4zMDQuMDI1LjQ0OS4wNzMuMTUuMDQ5LjM3NC4xNDYuNjIzLjI0NC44ODEuMzc5IDEuOC42NjUgMi43NDQuODU0Ljk3Ny4xOTQgMS45NzEuMjkyIDIuOTY4LjI5MiAxLjU3MSAwIDIuNzkzLS4yNjggMy42NDEtLjgwNS40MDctLjI0Ljc0LS41OC45NjgtLjk4N2EyLjU4IDIuNTggMCAwMC4zMy0xLjMzIDIuMzI2IDIuMzI2IDAgMDAtLjE2My0uOTIgMi4zNyAyLjM3IDAgMDAtLjUxMS0uNzg4Yy0uNDUtLjQ2My0xLjI5Ny0uODc4LTIuNTItMS4yNjhsLTMuNjE2LTEuMDk4Yy0xLjgyLS41Ni0zLjE2Ny0xLjM5LTMuOTktMi40ODhhNS43MyA1LjczIDAgMDEtMS4yNDgtMy41MzcgNS4zMzMgNS4zMzMgMCAwMS42NzQtMi43MDggNi4zMTcgNi4zMTcgMCAwMTEuNzk2LTJBNy45ODYgNy45ODYgMCAwMTYwLjc2Ni40ODUgMTEuMSAxMS4xIDAgMDE2My45MDguMDdjLjU1OS0uMDA0IDEuMTE3LjAyOSAxLjY3MS4wOTguNTc0LjA3MyAxLjA5OC4xNyAxLjYyMi4yNjguNDk4LjEyMi45NzIuMjQ0IDEuNDIxLjM5LjM2NC4xMS43MTUuMjU3IDEuMDQ4LjQ0LjI5My4xNDQuNTUuMzUzLjc0OC42MS4xNjIuMjM2LjI0MS41Mi4yMjQuODA0djEuMTQ3YzAgLjUxMi0uMTk5Ljc4LS41NzMuNzhhMi42MzUgMi42MzUgMCAwMS0uOTQ4LS4yOTMgMTEuNjMxIDExLjYzMSAwIDAwLTQuNzg5LS45NWMtMS40MjEgMC0yLjU0NC4yMTktMy4zMTcuNjgyLS43NzMuNDY0LTEuMTcyIDEuMTcxLTEuMTcyIDIuMTcxLS4wMDcuMzI0LjA1Ni42NDYuMTg1Ljk0NC4xMjkuMjk5LjMyLjU2Ny41NjMuNzg4LjQ5OS40NjQgMS40MjIuOTI3IDIuNzQ0IDEuMzQybDMuNTQxIDEuMDk4YzEuNzk2LjU2IDMuMDkzIDEuMzQxIDMuODY2IDIuMzQxYTUuNDQgNS40NCAwIDAxMS4xNDggMy40MTVjLjAxMy45OC0uMjEgMS45NS0uNjQ5IDIuODNhNi41OTUgNi41OTUgMCAwMS0xLjgyIDIuMTQ2IDguMTEgOC4xMSAwIDAxLTIuNzcgMS4zNjdjLTEuMTU0LjM0Ny0yLjM1Ny41Mi0zLjU2Ni41MTJ6IiBmaWxsPSIjMjUyRjNFIi8+PHBhdGggZD0iTTY3LjggMzQuODU1Yy04LjIwNiA1LjkyOC0yMC4xMjkgOS4wNzUtMzAuMzggOS4wNzUtMTQuMzY2IDAtMjcuMzEtNS4xOTYtMzcuMDg4LTEzLjgzMi0uNzczLS42ODMtLjA3NS0xLjYxLjg0OC0xLjA3MyAxMC41NzUgNi4wMDEgMjMuNjIgOS42MzYgMzcuMTEzIDkuNjM2QTc1LjQ5NSA3NS40OTUgMCAwMDY2LjYwMyAzM2MxLjM3LS42MSAyLjU0My44NzggMS4xOTYgMS44NTR6bTMuNDE2LTMuODA1Yy0xLjA0Ny0xLjMxNy02LjkzMy0uNjM0LTkuNjAyLS4zMTctLjc5OC4wOTctLjkyMy0uNTg2LS4yLTEuMDk4IDQuNjktMy4yMiAxMi4zOTYtMi4yOTMgMTMuMjk0LTEuMjIuODk4IDEuMDk4LS4yNSA4LjYzNi00LjYzOSAxMi4yNDYtLjY3My41Ni0xLjMyMi4yNjgtMS4wMjMtLjQ2NC45OTgtMi40MTUgMy4yMTgtNy44NTQgMi4xNy05LjE0N3oiIGZpbGw9IiNGOTAiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJjbGlwMF8xMDE1NV82MDUyMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg3NS43Nzh2NDRIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=" alt="AWS" class="kotlin-usage-highlights_logo__rton8"/></div><span class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light kotlin-usage-highlights_text__GGMbl">AWS opted for Kotlin over Java for Amazon Quantum Ledger Database (QLDB) thanks to its expressiveness and structured concurrency. They rewrote QLDB in Kotlin, enhancing the user experience, benefiting from its development workflow, and adopting it fully for server-side development.</span><span class="kotlin-usage-highlights_tag__swMJw"><span data-test="tag" class="_main_2otkwy_25 _sizeXs_2otkwy_54 _alignIconLeft_2otkwy_46 _sizeXs_6cvhja_9" style="color:rgba(25,25,28,0.7);background-color:rgba(25,25,28,0.1)">Server-side</span></span></div></a><a href="https://www.youtube.com/watch?v=hZPL8QqiLi8&ab_channel=Touchlab" target="_blank" rel="noreferrer noopener" class="_card_1xmqlbh_6 _themeLight_1xmqlbh_40 _modeClassic_1xmqlbh_59 _paddings16_1xmqlbh_197 _bordersRadius8_1xmqlbh_213 _withStaticBorder_1xmqlbh_43 _withStatesBorder_1xmqlbh_81 kotlin-usage-highlights_card__PsU0z"><div class="kotlin-usage-highlights_cardContent__54kf1"><div class="kotlin-usage-highlights_logoWrapper___n53u"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIxIiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04My43OTYgNS41MDNWLjQxOGM2LjYyNi0uMSA2Ljg5NC0uMTg4IDkuMDg1LS4xMzEgMy4zNjcuMDg1IDUuMzk4IDEuMDQ3IDYuODU4IDIuNTI1IDEuNDA3IDEuNDI1IDIuNTI0IDMuNTk4IDIuNDcyIDYuNzUzLS4wMzEgMS44MTYtMS4xNTIgOC40OTctOS4yNzUgOC45MTQtLjk1My4wODUtMy4xNC4wMS00LjUyOS4wNDNsMS4zNzQtNS4yMThjMy4yMTguMjY5IDUuNzctLjc0NyA1LjkwNy0zLjc5My4xNDktMy40Mi0yLjg4My00LjUwNS01LjkwNy0zLjk3bC01Ljk4NS0uMDM4eiIgZmlsbD0iIzAwODFDNCIvPjxwYXRoIGQ9Ik04OS43NzggMjMuNDRsLTUuOTgyLS4wMDFWNC40MTlsNS45ODIuMDR2MTguOTh6TTExMS4yNzcgOC41MjZsNC45MDkgMS43NDljMy4yNjkgMS4yOSAzLjk2MyAzLjkwOCAzLjkzMiA2LjE2Mi0uMDcyIDUuMjMtNC4yNDUgNy4xOS03LjU3MSA3LjQ3My0zLjc4Mi4zMjEtNi43MS0uMzEyLTcuNjk0LS40NzJ2LTUuNjljMi45OTMuOTA4IDYuNDc3Ljg3MiA3LjY1My40MTMuODktLjM0NiAxLjU2Ni0uODc2IDEuNTEyLTEuNTcyLS4wMy0uMzc3LS4wNjctLjg1Ny0xLjE5Mi0xLjMzOGwtNC41MjctMS42NDJjLTIuOTA4LTEuMDQ3LTQuMDMtMy44MDctMy45MDgtNi4yNjYuMjQ2LTQuOTY4IDQuMjE1LTcuNDgyIDguMTc3LTcuMzM3IDEuMjIzLjA0NCAyLjg3LjAxNiA1LjI2NS4zNDdWNS45OWMtMi42ODQtLjYyNC0zLjk0Mi0uNjE0LTUuMzI3LS40NDItMS41NDkuMTkxLTIuMjQ0Ljk5Mi0yLjIxMiAxLjg0OC4wMTYuNDMzLjQ0OS45MDkuOTgzIDEuMTIyTTI3LjMxNiA4Ljk5N2g2LjQ0MUwzMy43NTUuNDM5aDUuOTgydjIzLjAwNWgtNS45OHYtOS4yMzZoLTYuNDRsLS4wMDIgOS4yMzZoLTUuOTg4Vi40MzloNS45ODhsLjAwMSA4LjU1OHpNNDUuMzcyLjQ0aDUuOTg1djIzLjAwM2gtNS45ODVWLjQ0ek03Mi4xMTguNDRoNS45ODd2MjMuMDAzaC01Ljk4N1YuNDR6TTYyLjk3NyAxOC4yMmg2LjE3MnY1LjIyMmwtMTIuMTYuMDAyVi40MzloNS45ODl2MTcuNzgyek0wIDUuNTAzVi40MThDNi42MjcuMzE4IDYuODk0LjIzIDkuMDg2LjI4N2MzLjM2Ni4wODUgNS4zOTYgMS4wNDcgNi44NTcgMi41MjUgMS40MDcgMS40MjUgMi41MjQgMy41OTggMi40NzIgNi43NTMtLjAzMSAxLjgxNi0xLjE1MyA4LjQ5Ny05LjI3NiA4LjkxNC0uOTUxLjA4NS0zLjA3LjAxLTQuNDU5LjA0M2wxLjMwOC01LjIxOGMzLjIxOS4yNjkgNS43Ny0uNzQ3IDUuOTAzLTMuNzkzLjE0OS0zLjQyLTIuODgzLTQuNTA1LTUuOTA2LTMuOTdMMCA1LjUwM3oiIGZpbGw9IiMwMDgxQzQiLz48cGF0aCBkPSJNNS45OSAyMy40NEwwIDIzLjQzOVY0LjgxNGw1Ljk4NS4wMzguMDA1IDE4LjU4OHoiIGZpbGw9IiMwMDgxQzQiLz48L3N2Zz4=" alt="Philips" class="kotlin-usage-highlights_logo__rton8"/></div><span class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light kotlin-usage-highlights_text__GGMbl">Philips utilizes Kotlin Multiplatform in its HealthSuite digital platform mobile SDK. With KMP, they accelerated the implementation of new features and fostered increased collaboration between Android and iOS developers.</span><span class="kotlin-usage-highlights_tag__swMJw"><span data-test="tag" class="_main_2otkwy_25 _sizeXs_2otkwy_54 _alignIconLeft_2otkwy_46 _sizeXs_6cvhja_9" style="color:rgba(25,25,28,0.7);background-color:rgba(25,25,28,0.1)">Kotlin Multiplatform</span></span></div></a><a href="https://blog.developer.adobe.com/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a" target="_blank" rel="noreferrer noopener" class="_card_1xmqlbh_6 _themeLight_1xmqlbh_40 _modeClassic_1xmqlbh_59 _paddings16_1xmqlbh_197 _bordersRadius8_1xmqlbh_213 _withStaticBorder_1xmqlbh_43 _withStatesBorder_1xmqlbh_81 kotlin-usage-highlights_card__PsU0z"><div class="kotlin-usage-highlights_cardContent__54kf1"><div class="kotlin-usage-highlights_logoWrapper___n53u"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDciIGhlaWdodD0iNTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQyLjYzNSAyLjUyMWguMzEzYy4zODYgMCAuNzAxLS4xMy43MDEtLjQ3MSAwLS4yNTctLjE4Ny0uNDk2LS42NzYtLjQ5Ni0uMTUzIDAtLjI1NyAwLS4zMzguMDEydi45NTV6bTAgMS42NjFoLS41MjVWMS4yMzdjLjI0NC0uMDM2LjQ5LS4wODQuODc0LS4wODQuNDY2IDAgLjc1Ny4wOTYuOTQzLjIzOC4xNjMuMTMuMjU2LjMyOC4yNTYuNjEyIDAgLjM3Ny0uMjQ1LjYyMy0uNTU4LjcwNnYuMDIzYy4yNTUuMDQ4LjQxNy4yODMuNDc2LjcyLjA3LjQ2LjEyOC42MzQuMTc1LjczaC0uNTM1Yy0uMDctLjA5Ni0uMTMtLjM2NS0uMTg4LS43NTItLjA1Ny0uMzU2LS4yNTUtLjQ5Ny0uNjE3LS40OTdoLS4zMDF2MS4yNXptLjQ3Ny0zLjczNWMtMS4xNTMgMC0yLjA4NS45NzgtMi4wODUgMi4yMDMgMCAxLjIyNS45MzIgMi4yMDMgMi4wOTYgMi4yMDMgMS4xNTMuMDEzIDIuMDc0LS45NzcgMi4wNzQtMi4yMDMgMC0xLjIyNS0uOTItMi4yMDMtMi4wNzQtMi4yMDNoLS4wMXpNNDMuMTI0IDBjMS40NDEgMCAyLjU5NSAxLjE3OSAyLjU5NSAyLjY0IDAgMS40ODMtMS4xNTMgMi42Ni0yLjYwNyAyLjY2YTIuNjM3IDIuNjM3IDAgMDEtMi42MzItMi42NmMwLTEuNDYxIDEuMTc3LTIuNjQgMi42MzItMi42NGguMDEyek01LjcyNyA0Ny4yNDJsLS40MzgtMi42MmMtLjEyNC0uNzU2LS4yODQtMS45MzctLjQwNS0yLjc1NWgtLjA0N2MtLjEyOC44MjQtLjMwNyAyLjAzOC0uNDM4IDIuNzZsLS40NyAyLjYxNWgxLjc5OHptLTIuMDM0IDEuNzA5bC0uNTcgMi45MDhoLTIuMWwyLjYyMS0xMi4xMDJINi4yMmwyLjM4IDEyLjEwMkg2LjQ4OWwtLjU1Ny0yLjkwOEgzLjY5M3ptOS42ODgtMi40OTdjMC0uMTYyIDAtLjM1LS4wMzItLjUyMy0uMDgzLS41OTgtLjM5OC0xLjEzNi0uOTAzLTEuMTM2LS44NjggMC0xLjE4NyAxLjI2NC0xLjE4NyAyLjc0MiAwIDEuNjk4LjQ1NSAyLjY2NCAxLjE1NyAyLjY2NC4zMiAwIC42OS0uMTY2Ljg5LS44NzlhMS43NSAxLjc1IDAgMDAuMDc1LS41NTR2LTIuMzE0em0yLjE1Ni03LjAxOXY5LjkxNWMwIC43ODUuMDQgMS43NTIuMDcyIDIuNTA4aC0xLjg2M2wtLjEyMS0xLjAwOGgtLjA0NGMtLjMxMy42MjEtLjk5NCAxLjE1LTEuODA4IDEuMTUtMS43ODMgMC0yLjY2OC0xLjk5LTIuNjY4LTQuNTA0IDAtMy4wNjIgMS4zMi00LjU1IDIuNzU3LTQuNTUuNzUyIDAgMS4yMzguMzcxIDEuNDgzLjkxaC4wMzZ2LTQuNDJoMi4xNTZ6bTQuNDkyIDEwLjg5MmMuODIzIDAgMS4wMjYtMS41NjggMS4wMjYtMi44NjcgMC0xLjIzNS0uMjAzLTIuODQ0LTEuMDYzLTIuODQ0LS45MSAwLTEuMTAxIDEuNjEtMS4xMDEgMi44NDQgMCAxLjQ5LjI0IDIuODY3IDEuMTE4IDIuODY3aC4wMnpNMTkuOTg4IDUyYy0xLjk4NyAwLTMuMjMzLTEuNjE0LTMuMjMzLTQuNTAyIDAtMy4xNTIgMS42LTQuNTUzIDMuMjg0LTQuNTUzIDEuOTYgMCAzLjE4OSAxLjY5MiAzLjE4OSA0LjUwMiAwIDMuNjEtMS45MjUgNC41NTMtMy4yMjMgNC41NTNoLS4wMTd6bTYuNjAyLTMuMjc0YzAgLjIyLjA0LjQyNC4wODUuNTYxLjIxNy43MzQuNTgzLjkxNC44NzcuOTE0LjgzNCAwIDEuMTctMS4wNjggMS4xNy0yLjc3OCAwLTEuNTU2LS4zNTUtMi42MjgtMS4xOC0yLjYyOC0uNDA5IDAtLjc1My40NDktLjg3MS45MzEtLjA0Mi4xNTItLjA4MS4zODktLjA4MS41NTJ2Mi40NDh6bS0yLjE1Ny05LjI5MWgyLjE1N3Y0LjU2OWguMDM0Yy40MjUtLjY3NC45OS0xLjA1OSAxLjgxMi0xLjA1OSAxLjYyNiAwIDIuNDQzIDEuODY5IDIuNDQzIDQuMzEzIDAgMy4wODktMS4yMTggNC43NDItMi43OTcgNC43NDItLjc1MiAwLTEuMjUyLS4zMzctMS43MDQtMS4xOTJoLS4wNDZsLS4xMiAxLjA1aC0xLjg1MWE2Mi44NCA2Mi44NCAwIDAwLjA3Mi0yLjUwOHYtOS45MTV6bTExLjYxMyA3LjIwMmMuMDExLTEuMjMxLS4zNDYtMi4wOTUtMS4wMy0yLjA5NS0uNzggMC0xLjExMiAxLjE1Ni0xLjEzNiAyLjA5NWgyLjE2NnptLTIuMTc0IDEuNTQyYy4wMjYgMS41ODYuODUgMi4xMDMgMS44NzQgMi4xMDMuNjQ5IDAgMS4yMDUtLjE0NyAxLjYxNi0uMzAzbC4yOSAxLjU2OWMtLjU3MS4yNS0xLjQ1NS40MDYtMi4zMDIuNDA2LTIuMzEzIDAtMy41NzctMS42LTMuNTc3LTQuMzMxIDAtMi45MzIgMS40NjYtNC42OTIgMy4zOC00LjY5MiAxLjg1IDAgMi44NzUgMS41NTYgMi44NzUgNC4wOTYgMCAuNTgyLS4wMjMuOTA4LS4wNjIgMS4xNjRsLTQuMDk0LS4wMTJ6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI0LjM1IDBoMTQuMDE0djMzLjE0M0wyNC4zNSAwem0tOS44NzIgMEguNDU4djMzLjE0M0wxNC40NzggMHptNC45MzggMTIuMjEybDguOTI4IDIwLjkzaC01Ljg1bC0yLjY3LTYuNjY4aC02LjUzN2w2LjEzLTE0LjI2MnoiIGZpbGw9IiNFRDFDMjQiLz48L3N2Zz4=" alt="Adobe" class="kotlin-usage-highlights_logo__rton8"/></div><span class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light kotlin-usage-highlights_text__GGMbl">Adobe Experience Platform chose Kotlin for server-side development because of its concise syntax, async capabilities, and interoperability with Java. This shift boosted productivity and improved the developer experience, replacing Java for real-time services.</span><span class="kotlin-usage-highlights_tag__swMJw"><span data-test="tag" class="_main_2otkwy_25 _sizeXs_2otkwy_54 _alignIconLeft_2otkwy_46 _sizeXs_6cvhja_9" style="color:rgba(25,25,28,0.7);background-color:rgba(25,25,28,0.1)">Server-side</span></span></div></a><a href="https://www.forbes.com/sites/forbes-engineering/2023/11/13/forbes-mobile-app-shifts-to-kotlin-multiplatform/" target="_blank" rel="noreferrer noopener" class="_card_1xmqlbh_6 _themeLight_1xmqlbh_40 _modeClassic_1xmqlbh_59 _paddings16_1xmqlbh_197 _bordersRadius8_1xmqlbh_213 _withStaticBorder_1xmqlbh_43 _withStatesBorder_1xmqlbh_81 kotlin-usage-highlights_card__PsU0z"><div class="kotlin-usage-highlights_cardContent__54kf1"><div class="kotlin-usage-highlights_logoWrapper___n53u"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEwIiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjYuNTIzIDcuOTNjMi4xNTQgMCAzLjk1Mi44NjUgNS4zOTUgMi41OTYgMS40NDMgMS43MzEgMi4xNjUgMy45MyAyLjE2NSA2LjU5NyAwIDMuMzY4LS45NSA2LjAyMy0yLjg1MiA3Ljk2NUM2OS4zMyAyNy4wMjkgNjYuNzMgMjggNjMuNDMgMjhjLTEuNzQxIDAtNC4xMjMtLjMyOC03LjE0Ny0uOTgzLjA5MS0xLjQwMy4xNDktNS4wMTcuMTcyLTEwLjg0Mi4wMjItNS44MjQtLjAzNS05LjU1NS0uMTcyLTExLjE5My0uMDkyLS44NDItLjI1Mi0xLjQ1LS40ODEtMS44MjQtLjIzLS4zNzQtLjY0Mi0uNTg1LTEuMjM3LS42MzJsLS44MjUtLjE0di0uNzcyTDYyLjEyNSAwYTE4Ny4zNzUgMTg3LjM3NSAwIDAwLS4yMDYgOS4xMjNjMS42NS0uNzk2IDMuMTg0LTEuMTkzIDQuNjA0LTEuMTkzem0tMi45NTUgMTguNjY2YzEuMzc1IDAgMi40OTctLjg3NyAzLjM2OC0yLjYzMS44Ny0xLjc1NSAxLjMwNS0zLjk0MiAxLjMwNS02LjU2MSAwLTIuMTA2LS4zODktMy44NDgtMS4xNjgtNS4yMjktLjc3OS0xLjM4LTEuODMyLTIuMDctMy4xNjEtMi4wNy0uODI1IDAtMS40OS4wOTQtMS45OTMuMjgxIDAgOC44ODkuMDY5IDE0LjI0Ni4yMDYgMTYuMDcuNDU4LjA5NC45NC4xNCAxLjQ0My4xNHpNMjIuMTk4IDguMTRsLTEuMzA2LjQyMUMxOS43IDQuNDkxIDE3LjU3IDIuNDU2IDE0LjUgMi40NTZoLTQuMzNjLS4xODIgMi4xOTktLjI3NCA1LjgyNS0uMjc0IDEwLjg3N2wyLjk1NS0uMDdjMS42MDQtLjA0NyAyLjY4LTEuMjg2IDMuMjMtMy43MmgxLjF2OS4xMjRoLTEuMWMtLjU1LTIuNDgtMS42MjYtMy43NDMtMy4yMy0zLjc5bC0yLjk1NS0uMDdjMCAyLjkuMDkyIDUuNDc0LjI3NSA3LjcyLjA5MiAxLjI2Mi4zMiAyLjE2My42ODcgMi43MDEuMzY3LjUzOC45ODUuODc3IDEuODU2IDEuMDE4bDEuNTEyLjE0djEuMTIzSDB2LTEuMTIzbDEuMTY4LS4xNGMuODctLjE0IDEuNDktLjQ4IDEuODU2LTEuMDE4LjM2Ni0uNTM4LjU5NS0xLjQzOS42ODctMi43MDIuNDU4LTUuMjQuNDU4LTEwLjkgMC0xNi45ODItLjA5Mi0xLjI2My0uMzItMi4xNjQtLjY4Ny0yLjcwMi0uMzY3LS41MzgtLjk4NS0uODc3LTEuODU2LTEuMDE3TDAgMS42ODVWLjU2aDIyLjA2bC4xMzcgNy41OHptLS4xMzggMi41MjdjMS43NC0xLjk2NSA0LjEyMy0yLjk0OCA3LjE0Ny0yLjk0OHM1LjM0OS45NDggNi45NzUgMi44NDJjMS42MjcgMS44OTUgMi40NCA0LjMxNiAyLjQ0IDcuMjY0IDAgMi45LS44NyA1LjMyMS0yLjYxMSA3LjI2M0MzNC4yNyAyNy4wMjkgMzEuODg3IDI4IDI4Ljg2MyAyOGMtMy4wMjMgMC01LjM0OC0uOTQ3LTYuOTc1LTIuODQyLTEuNjI2LTEuODk1LTIuNDQtNC4zMTYtMi40NC03LjI2MyAwLTIuOS44Ny01LjMxIDIuNjEyLTcuMjI4em02Ljg3Mi0xLjY4NWMtMi4zODIgMC0zLjU3MyAyLjk0OC0zLjU3MyA4Ljg0MyAwIDIuNTczLjMyIDQuNzAxLjk2MiA2LjM4Ni42NDEgMS42ODQgMS41OCAyLjUyNiAyLjgxNyAyLjUyNiAyLjM4MyAwIDMuNTc0LTIuOTcgMy41NzQtOC45MTIgMC0yLjU3My0uMzItNC42OS0uOTYyLTYuMzUxLS42NDItMS42NjEtMS41OC0yLjQ5Mi0yLjgxOC0yLjQ5MnptNDYuNzMxIDkuMDUzYzAtMi44NTQuODQ4LTUuMjc1IDIuNTQzLTcuMjYzIDEuNjk1LTEuOTg4IDQuMDc4LTIuOTgzIDcuMTQ3LTIuOTgzIDIuNTIgMCA0LjQ1Ni44NTQgNS44MDcgMi41NjIgMS4zNTIgMS43MDcgMi4wMjggMy45MTggMi4wMjggNi42MzJIODEuNDM2Yy0uMDkyIDIuNDMyLjQ1OCA0LjM5NyAxLjY1IDUuODk0IDEuMTkgMS40OTcgMi44ODYgMi4yNDYgNS4wODUgMi4yNDYgMS42MDMgMCAzLS40NjggNC4xOTItMS40MDRsLjU1LjcwMmMtLjczMy45ODMtMS43NjQgMS44MjUtMy4wOTMgMi41MjZDODguNDkyIDI3LjY1IDg2Ljk4IDI4IDg1LjI4NSAyOGMtMi43OTUgMC01LjA5Ny0uOTM2LTYuOTA3LTIuODA3LTEuODEtMS44NzEtMi43MTUtNC4yNTctMi43MTUtNy4xNTh6bTUuODQyLTIuNDU2bDUuODQxLS4xNGMwLTQuMzA1LS44MjQtNi40NTctMi40NzQtNi40NTctMS4wMDggMC0xLjgxLjY3OS0yLjQwNSAyLjAzNi0uNTk2IDEuMzU2LS45MTYgMi44NzctLjk2MiA0LjU2em0yNi43MzMtMS44OTVsLS45NjIuMjhjLTEuMDA4LTMuMjI3LTIuNjEyLTQuODQxLTQuODExLTQuODQxLS43NzkgMC0xLjQwOS4yNjktMS44OS44MDctLjQ4MS41MzgtLjcyMSAxLjIyOC0uNzIxIDIuMDcgMCAuODQyLjMzMiAxLjUzMi45OTYgMi4wNy42NjUuNTM4IDEuOTEzIDEuMTU4IDMuNzQ2IDEuODYgMS42NDkuNjU1IDIuODI5IDEuNDAzIDMuNTM5IDIuMjQ1LjcxLjg0MiAxLjA2NSAxLjk0MiAxLjA2NSAzLjI5OSAwIDIuMDU4LS43MSAzLjY2LTIuMTMgNC44MDctMS40MjEgMS4xNDYtMy4zOTEgMS43MTktNS45MTEgMS43MTktMi40MjggMC00LjYyNy0uMzk4LTYuNTk3LTEuMTkzbC0uMjA2LTUuNjE0Ljk2Mi0uMjhjMS4yMzcgMy42MDIgMy4wNyA1LjQwMyA1LjQ5OCA1LjQwMy45NjIgMCAxLjcyOS0uMzA0IDIuMzAyLS45MTIuNTczLS42MDkuODU5LTEuMzEuODU5LTIuMTA2IDAtLjc5NS0uMjg2LTEuNDYyLS44NTktMnMtMS42MzgtMS4wODctMy4xOTUtMS42NDljLTEuNzQyLS42NTUtMy4wMzYtMS4zOTItMy44ODMtMi4yMS0uODQ4LS44Mi0xLjI3Mi0yLTEuMjcyLTMuNTQ0IDAtMS43MzEuNjk5LTMuMTkzIDIuMDk2LTQuMzg2IDEuMzk4LTEuMTkzIDMuMjQyLTEuNzkgNS41MzItMS43OSAyLjI0NSAwIDQuMTI0LjM1MSA1LjYzNiAxLjA1M2wuMjA2IDQuOTEyem0tNTUuMzIyLS4xNGMtMS4zMjgtLjc5Ni0yLjU1NC0xLjEzNS0zLjY3Ni0xLjAxOC0xLjEyMy4xMTctMS44NDQuNDU3LTIuMTY1IDEuMDE4LS4yMyAzLjYwMi0uMjA2IDcuMDQuMDY5IDEwLjMxNi4xMzcgMS40OTcuNzMzIDIuMzE1IDEuNzg2IDIuNDU2bDEuNTEyLjE0djEuMDUzSDM4Ljc2di0xLjA1M2wuODI0LS4xNGMxLjA1NC0uMTQgMS42NS0uOTYgMS43ODctMi40NTYuMzItMy45My4zMi03LjY1IDAtMTEuMTU4LS4xMzgtMS40OTctLjczMy0yLjMxNi0xLjc4Ny0yLjQ1NmwtLjgyNS0uMDd2LS43NzJsOC4zODUtMS42ODUtLjA3IDQuNDkxYy41OTYtMS40NSAxLjQxLTIuNTYgMi40NC0zLjMzMyAxLjAzMS0uNzcyIDIuMDA1LTEuMTU4IDIuOTIxLTEuMTU4LjkxNyAwIDEuNzY0LjE4NyAyLjU0My41NjJsLTIuMDYyIDUuMjYzeiIgZmlsbD0iIzE4MTcxNiIvPjwvc3ZnPg==" alt="Forbes" class="kotlin-usage-highlights_logo__rton8"/></div><span class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light kotlin-usage-highlights_text__GGMbl">By sharing over 80% of logic across iOS and Android, Forbes now rolls out new features simultaneously on both platforms, keeping the flexibility to withhold or customize features based on the specific platform.</span><span class="kotlin-usage-highlights_tag__swMJw"><span data-test="tag" class="_main_2otkwy_25 _sizeXs_2otkwy_54 _alignIconLeft_2otkwy_46 _sizeXs_6cvhja_9" style="color:rgba(25,25,28,0.7);background-color:rgba(25,25,28,0.1)">Kotlin Multiplatform</span></span></div></a><a href="https://www.youtube.com/watch?v=4GkoB4hZUnw" target="_blank" rel="noreferrer noopener" class="_card_1xmqlbh_6 _themeLight_1xmqlbh_40 _modeClassic_1xmqlbh_59 _paddings16_1xmqlbh_197 _bordersRadius8_1xmqlbh_213 _withStaticBorder_1xmqlbh_43 _withStatesBorder_1xmqlbh_81 kotlin-usage-highlights_card__PsU0z"><div class="kotlin-usage-highlights_cardContent__54kf1"><div class="kotlin-usage-highlights_logoWrapper___n53u"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxtYXNrIGlkPSJhIiBzdHlsZT0ibWFzay10eXBlOmx1bWluYW5jZSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjE5MiIgaGVpZ2h0PSIyNCI+PHBhdGggZD0iTTAgMGgxOTJ2MjRIMFYweiIgZmlsbD0iI2ZmZiIvPjwvbWFzaz48ZyBtYXNrPSJ1cmwoI2EpIj48cGF0aCBkPSJNNi45ODQgMTAuOTQ3YS42Ny42NyAwIDAwLS42MDUtLjI2MS42NjYuNjY2IDAgMDAtLjUzNS4zODVMLjA3MiAyMi42OThhLjcuNyAwIDAwLjI4MS45MTcuNjg2LjY4NiAwIDAwLjMzNi4wODhoOC4wMzhhLjY2Mi42NjIgMCAwMC42MTctLjM4NGMxLjczMy0zLjYxLjY4My05LjA5Ny0yLjM2LTEyLjM3MnoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xMDE1NV82MDM1MikiLz48cGF0aCBkPSJNMTEuMjE2LjM3MmExNS40MzMgMTUuNDMzIDAgMDAtLjg4OSAxNS4xNGwzLjg3NiA3LjgwN2EuNjkzLjY5MyAwIDAwLjYxNy4zODVoOC4wMzZhLjY4Ny42ODcgMCAwMC41ODYtLjMzLjcuNyAwIDAwLjAzLS42NzZTMTIuNjYyLjkxMyAxMi4zOS4zNjhhLjY1NS42NTUgMCAwMC0uNTg4LS4zNjkuNjQ5LjY0OSAwIDAwLS41ODUuMzczeiIgZmlsbD0iIzI2ODRGRiIvPjxwYXRoIGQ9Ik0xMDUuNDczIDkuNjk0YzAgMi44OCAxLjMyNiA1LjE2NSA2LjUxMSA2LjE3NCAzLjA5NC42NTQgMy43NDIgMS4xNTcgMy43NDIgMi4xOTYgMCAxLjAxLS42NDkgMS42NjMtMi44MjggMS42NjNhMTUuODcgMTUuODcgMCAwMS03LjUxMy0yLjA0OXY0LjY5YzEuNTYyLjc3MSAzLjYyNCAxLjYzMiA3LjQ1NCAxLjYzMiA1LjQyMSAwIDcuNTcyLTIuNDM1IDcuNTcyLTYuMDU1bC0xNC45MzgtOC4yNXptMTQuOTM4IDguMjUxYzAtMy40MTMtMS43OTgtNS4wMTYtNi44NjUtNi4xMTQtMi43OTktLjYyMy0zLjQ3Ni0xLjI0Ni0zLjQ3Ni0yLjEzNyAwLTEuMTI3IDEuMDAxLTEuNjAyIDIuODU3LTEuNjAyIDIuMjM5IDAgNC40NDkuNjgyIDYuNTQxIDEuNjMyVjUuMjQyYTE0LjY5IDE0LjY5IDAgMDAtNi4zOTMtMS4zMzVjLTUuMDA5IDAtNy42MDIgMi4xOTYtNy42MDIgNS43ODdtNjkuNjQ2LTUuNDl2MTkuNWg0LjEyNFY4LjgzNGwxLjczOSAzLjk0NyA1LjgzMyAxMC45MjNIMTkydi0xOS41aC00LjEyNHYxMi41ODRsLTEuNTYzLTMuNjUtNC42ODMtOC45MzRoLTYuNTExem0tMjYuMjM1IDBoLTQuNTA3djE5LjVoNC41MDd2LTE5LjV6bS05LjcwOCAxMy43NDFjMC0zLjQxMy0xLjc5Ny01LjAxNi02Ljg2NS02LjExNC0yLjc5OC0uNjIzLTMuNDc2LTEuMjQ2LTMuNDc2LTIuMTM3IDAtMS4xMjcgMS4wMDItMS42MDIgMi44NTctMS42MDIgMi4yMzkgMCA0LjQ0OS42ODIgNi41NDEgMS42MzJWNS4yNDJhMTQuNjkyIDE0LjY5MiAwIDAwLTYuMzk0LTEuMzM1Yy01LjAwOCAwLTcuNiAyLjE5Ni03LjYgNS43ODcgMCAyLjg4IDEuMzI2IDUuMTY1IDYuNTExIDYuMTc0IDMuMDkzLjY1NCAzLjc0MSAxLjE1NyAzLjc0MSAyLjE5NiAwIDEuMDEtLjY0OSAxLjY2My0yLjgyOCAxLjY2M2ExNS44NyAxNS44NyAwIDAxLTcuNTEzLTIuMDQ5djQuNjljMS41NjEuNzcxIDMuNjI0IDEuNjMyIDcuNDU0IDEuNjMyIDUuNDIxIDAgNy41NzItMi40MzUgNy41NzItNi4wNTV6TTcwLjQ1NiA0LjIwNHYxOS41aDkuMjY1bDEuNDU5LTQuMjE1aC02LjE4N1Y0LjIwNGgtNC41Mzd6bS0xOC4zMDUgMHY0LjIxNGg1LjAwOHYxNS4yODZoNC41MzdWOC40MThoNS4zNjNWNC4yMDRINTIuMTV6bS02LjU4IDBoLTUuOTQ1bC02Ljc1IDE5LjVoNS4xNTVsLjk1Ny0zLjI4NGMyLjM1Ni42OTcgNC44NjIuNjk3IDcuMjE5IDBsLjk1NyAzLjI4NGg1LjE1NmwtNi43NDgtMTkuNXptLTIuOTcyIDEyLjdjLS44NC0uMDAxLTEuNjc1LS4xMjItMi40OC0uMzZsMi40OC04LjUxIDIuNDggOC41MTNhOC43NCA4Ljc0IDAgMDEtMi40OC4zNTZ6bTUzLjA5NS0xMi43aC01Ljk0NmwtNi43NSAxOS41aDUuMTU2bC45NTctMy4yODRjMi4zNTcuNjk3IDQuODYzLjY5NyA3LjIyIDBsLjk1NiAzLjI4NGg1LjE1NmwtNi43NDktMTkuNXptLTIuOTczIDEyLjdjLS44NC0uMDAxLTEuNjc1LS4xMjItMi40OC0uMzZsMi40OC04LjUxIDIuNDggOC41MTNhOC43NCA4Ljc0IDAgMDEtMi40OC4zNTZ6bTcyLjQwOC0xMi43aC01Ljk0NmwtNi43NSAxOS41aDUuMTU1bC45NTctMy4yODRjMi4zNTcuNjk3IDQuODYzLjY5NyA3LjIyIDBsLjk1NiAzLjI4NGg1LjE1NmwtNi43NDgtMTkuNXptLTIuOTc1IDEyLjdjLS44NC0uMDAxLTEuNjc1LS4xMjItMi40ODEtLjM2bDIuNDgxLTguNTEgMi40OCA4LjUxM2E4Ljc0IDguNzQgMCAwMS0yLjQ4LjM1NnoiIGZpbGw9IiMwMDUyQ0MiLz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzEwMTU1XzYwMzUyIiB4MT0iMTAuMTQ3IiB5MT0iMTIuNzQiIHgyPSIzLjk4OCIgeTI9IjIzLjMzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzAwNTJDQyIvPjxzdG9wIG9mZnNldD0iLjkyMyIgc3RvcC1jb2xvcj0iIzI2ODRGRiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==" alt="Atlassian" class="kotlin-usage-highlights_logo__rton8"/></div><span class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light kotlin-usage-highlights_text__GGMbl">Atlassian adopted Kotlin for the Jira Software cloud, leveraging its Java compatibility for seamless integration and minimizing migration challenges. Kotlin's ease of use improved developer productivity and boosted team satisfaction and efficiency.</span><span class="kotlin-usage-highlights_tag__swMJw"><span data-test="tag" class="_main_2otkwy_25 _sizeXs_2otkwy_54 _alignIconLeft_2otkwy_46 _sizeXs_6cvhja_9" style="color:rgba(25,25,28,0.7);background-color:rgba(25,25,28,0.1)">Server-side</span></span></div></a></div></div><div class="divider-line_divider__ke_OJ"></div><div class="info-block_container__1_jl6"><div class="info-block_item__lGaST info-block_content__4THgE"><h2 class="rs-h2 rs-h2_theme_light info-block_title__HaYDK">Share code on your terms and for different platforms</h2><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light info-block_text__AszQr">Simplify the development of cross-platform projects with Kotlin Multiplatform. It reduces time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming. Kotlin applications will work on different operating systems, such as iOS, Android, macOS, Windows, Linux, watchOS, and others.</div><a data-test="button" href="/lp/multiplatform/" type="button" class="_main_d4ewd2_17 _modeRock_d4ewd2_241 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _light_d4ewd2_59">Learn about Kotlin Multiplatform</a></div><div class="info-block_item__lGaST info-block_media__7luO_"><img src="/_next/static/chunks/images/multiplatform-preview-7b3351f5847838b3eed177968632b081.svg" alt=""/></div></div><div class="divider-line_divider__ke_OJ"></div><div class="info-block_container__1_jl6"><div class="info-block_item__lGaST info-block_content__4THgE"><h2 class="rs-h2 rs-h2_theme_light info-block_title__HaYDK">Big, friendly and helpful community</h2><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light info-block_text__AszQr">Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away — consult extensive community resources or ask the Kotlin team directly.</div><a href="/community/"><button data-test="button" type="button" class="_main_d4ewd2_17 _modeRock_d4ewd2_241 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _light_d4ewd2_59">Join the community</button></a></div><div class="info-block_item__lGaST info-block_media__7luO_"><div class="index_videoWrapper__pTclA"><div class="ktl-youtube-player-module_youtube-player_aSb0a index_videoPlayer__DZXpM"><div class="ktl-youtube-player-module_preview_SuIdr"><img src="https://img.youtube.com/vi/JGvk4M0Rfxo/maxresdefault.jpg" alt="" class="ktl-youtube-player-module_image-preview_qXCFf"/><button type="button" aria-label="Play video" class="ktl-youtube-player-module_play-button_SNPG7 ktl-youtube-player-module_play-button_inversed_ENTdT"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M19 12 8 4v16l11-8z"></path></svg></button></div><div class="ktl-youtube-player-module_player_nH-tB"></div></div></div></div></div><div class="divider-line_divider__ke_OJ"></div><div class="foundation-preview_foundationPreview__7TrlB"><img alt="" loading="lazy" width="434" height="320" decoding="async" data-nimg="1" class="foundation-preview_foundationPreviewImage__Mn1TX" style="color:transparent" src="/_next/static/chunks/images/foundation-preview-9786861824b00370498d2e3b6bfd57a3.png"/><h2 class="rs-h2 rs-h2_theme_light foundation-preview_title__4dAIQ">Kotlin Foundation</h2><div class="rs-text-2 rs-text-2_hardness_hard rs-text-2_theme_light foundation-preview_description__bFnDH">Actively supports community efforts in developing the Kotlin ecosystem.</div><div class="foundation-preview_secondBlock__npr_1"><div class="foundation-preview_companies__AnbeL"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTIiIGhlaWdodD0iNTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3Ljk4OSAwaDI5Ljk0OEE0LjA2NCA0LjA2NCAwIDAxNTIgNC4wNjNWMzQuMDFhOC4xMjggOC4xMjggMCAwMS0yLjM4IDUuNzQ1bC05Ljg2NCA5Ljg2M0E4LjEyOCA4LjEyOCAwIDAxMzQuMDEgNTJINC4wNjJBNC4wNjQgNC4wNjQgMCAwMTAgNDcuOTM3VjE3Ljk5YzAtMi4xNTMuODU3LTQuMjIxIDIuMzgtNS43NDVsOS44NjQtOS44NjNBOC4xMjcgOC4xMjcgMCAwMTE3Ljk5IDB6IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTA2NjBfMTMyMTUpIi8+PHBhdGggZD0iTTQyLjI1IDkuNzVINC44NzV2MzcuMzc1SDQyLjI1VjkuNzV6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTkuNjg1IDE3LjQ2YS43MDYuNzA2IDAgMDAuMDgxLS4zNFYxM2gxLjMyOXY0LjIxN2MwIC4zNS0uMDczLjY2Mi0uMjI0LjkzLS4xNS4yNjgtLjM2NS40NzYtLjYzOC42MjYtLjI3Ni4xNS0uNTg5LjIyMy0uOTQyLjIyM0g4LjEyNXYtMS4yMjNoLjk5MWMuMTMgMCAuMjQ0LS4wMjguMzQxLS4wOGEuNTQ0LjU0NCAwIDAwLjIyOC0uMjMyek04LjEyNSA0MS40MzhoMTN2Mi40MzdoLTEzdi0yLjQzOHpNMTMuNDgzIDE2LjU1aDIuODI0di0xLjEyaC0yLjgyNHYtMS4yNzJIMTYuNlYxM2gtNC40MDd2NS45OTZoNC40OTN2LTEuMTUzaC0zLjIwMlYxNi41NXpNMTguOTQ4IDE0LjE5aC0xLjc4VjEzaDQuODc1djEuMTloLTEuNzcxdjQuODA2aC0xLjMyNFYxNC4xOXoiIGZpbGw9IiNmZmYiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEyLjEzNSAyMy44MDJhMS43NTQgMS43NTQgMCAwMC0uMzI1LS4xMyAxLjMxNCAxLjMxNCAwIDAwLjc2My0uNTc3Yy4xMjYtLjIwNy4xODctLjQ0Mi4xODctLjcwNyAwLS4zMDQtLjA4LS41NzYtLjI0OC0uODE2YTEuNjM4IDEuNjM4IDAgMDAtLjY5OC0uNTYgMi40ODggMi40ODggMCAwMC0xLjAyNC0uMjA0SDguMTI1djUuOTk2aDIuNzE4Yy40MDIgMCAuNzY0LS4wNjkgMS4wNzYtLjIxLjMxNy0uMTQzLjU2MS0uMzM4LjczNi0uNTkuMTc0LS4yNTIuMjYtLjUzNi4yNi0uODYxIDAtLjI5Ny0uMDctLjU2LS4yMDctLjc5NmExLjQyMiAxLjQyMiAwIDAwLS41NzMtLjU0NXptLTIuNzIyLTEuOTg2aDEuMTc4YS45Ni45NiAwIDAxLjQzLjA4OS42NTkuNjU5IDAgMDEuMjkzLjI1Mi43LjcgMCAwMS4xMDYuMzgyLjc2OC43NjggMCAwMS0uMTA2LjM5OC42NzYuNjc2IDAgMDEtLjI5Mi4yNi45NzQuOTc0IDAgMDEtLjQzMS4wOTNIOS40MTN2LTEuNDc0em0yLjAzMSAzLjYzMmEuNzQuNzQgMCAwMS0uMzIuMjY0Yy0uMTM5LjA2LS4yOTcuMDkzLS40OC4wOTNIOS40MTN2LTEuNTRoMS4yM2MuMTggMCAuMzM0LjAzMy40NzYuMDk4YS43NzUuNzc1IDAgMDEuMzI1LjI3Ni43MzMuNzMzIDAgMDEuMTE0LjQxLjY4NS42ODUgMCAwMS0uMTE0LjM5OXpNMTguMjQ5IDIzLjcwOWExLjgxNSAxLjgxNSAwIDAxLS43NzIuNjc0bC0uMDA0LS4wMDRjLS4wNjUuMDI4LS4xMy4wNTctLjIuMDgxbDEuMzcgMi4zNDRoLTEuNTE1bC0xLjIxNS0yLjE4NWgtLjg2NnYyLjE4NUgxMy43MnYtNS45OTZoMi42MjRjLjQzNSAwIC44MTcuMDc3IDEuMTQ2LjIzNi4zMy4xNTguNTg1LjM3OC43NjQuNjY2LjE3OS4yODguMjY4LjYxLjI2OC45OTEgMCAuMzgyLS4wOS43Mi0uMjcyIDEuMDA4em0tMi4wMDMtMS44MmgtMS4xOTR2MS42NjFoMS4xOTRjLjE4NyAwIC4zNDUtLjAzMi40ODMtLjEwMWEuNzA1LjcwNSAwIDAwLjMxNy0uMjg5Ljg3Mi44NzIgMCAwMC4xMS0uNDQyLjg1Ny44NTcgMCAwMC0uMTEtLjQ0LjcyOS43MjkgMCAwMC0uMzE3LS4yODggMS4wNjEgMS4wNjEgMCAwMC0uNDgzLS4xMDF6TTIwLjkxNCAyMC44MTJsLTIuMTQxIDUuOTk2aDEuMzQ5bC40MjItMS4zMjRoMi4yMjJsLjQ1NSAxLjMyNGgxLjMyNWwtMi4xOTQtNS45OTZoLTEuNDM4em0tLjA3IDMuNjY5bC42OTEtMi4xMTcuMDgyLS4zODYuMDguMzg2LjczNiAyLjExN2gtMS41ODh6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTI1LjE0NyAyMC44MTJoMS4zNjl2NS45OTZoLTEuMzd2LTUuOTk2ek0zMS41MTMgMjQuODY3bC0yLjU4LTQuMDU1aC0xLjI5MnY1Ljk5NmgxLjIxVjIyLjc1bDIuNTY4IDQuMDU4aDEuMzA4di01Ljk5NmgtMS4yMTR2NC4wNTV6TTM3LjQyOCAyMy41N2MuMjMxLjE2Ny40MTQuMzc0LjU0NC42MjZoLS4wMDRjLjEzLjI1Mi4xOTUuNTI0LjE5NS44MiAwIC4zNjItLjA5Ny42ODctLjI4OC45NzYtLjE5MS4yODgtLjQ2LjUxMi0uODA1LjY3NGEyLjc2MyAyLjc2MyAwIDAxLTEuMTg2LjI0NGMtLjQ0MyAwLS44MzctLjA4MS0xLjE3OC0uMjRhMS45MzMgMS45MzMgMCAwMS0uODA5LS42NjYgMS43NjIgMS43NjIgMCAwMS0uMy0uOTkxaDEuMzI4YzAgLjE1NC4wNDUuMjkyLjEyNi40MWEuNzguNzggMCAwMC4zNDYuMjcyYy4xNDYuMDY1LjMyLjA5OC41MDMuMDk4cy4zNDYtLjAyOS40OC0uMDg1YS43NC43NCAwIDAwLjMxNy0uMjQ0LjU5OC41OTggMCAwMC4xMTMtLjM2Mi41OTUuNTk1IDAgMDAtLjE1NC0uNDE0LjgyMy44MjMgMCAwMC0uNDE5LS4yMzJsLTEuMDgtLjIyM2ExLjk3OSAxLjk3OSAwIDAxLS43NDQtLjMyMSAxLjYyNyAxLjYyNyAwIDAxLS40OTUtLjU4MSAxLjY5NCAxLjY5NCAwIDAxLS4xNzUtLjc4YzAtLjM1OC4wOS0uNjc0LjI3Mi0uOTU1LjE4LS4yOC40MzUtLjQ5NS43Ni0uNjU0LjMyNS0uMTU4LjY5LS4yMzUgMS4xMTMtLjIzNS40MjMgMCAuNzk2LjA3NyAxLjEyMS4yMjcuMzMuMTUuNTg1LjM2Mi43NjguNjMuMTgzLjI2OC4yOC41NzcuMjg5LjkyNmgtMS4zMjlhLjU5OS41OTkgMCAwMC0uMTA1LS4zNDUuNjguNjggMCAwMC0uMjkzLS4yMzYgMS4wNyAxLjA3IDAgMDAtLjQzOS0uMDg1IDEuMSAxLjEgMCAwMC0uNDMuMDgxLjY2OC42NjggMCAwMC0uMjg5LjIyMy41NjIuNTYyIDAgMDAtLjEwMS4zMzhjMCAuMTQyLjA0OC4yNi4xNDIuMzU3YS43NS43NSAwIDAwLjM4Mi4ybDEuMDIuMjFjLjMuMDU3LjU2OC4xNzEuODA0LjMzOHoiIGZpbGw9IiNmZmYiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTA2NjBfMTMyMTUiIHgxPSIuODEzIiB5MT0iNTEuMTg4IiB4Mj0iNTAuOTg0IiB5Mj0iMS4wMTYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjRkY5NDE5Ii8+PHN0b3Agb2Zmc2V0PSIuNDMiIHN0b3AtY29sb3I9IiNGRjAyMUQiLz48c3RvcCBvZmZzZXQ9Ii45OSIgc3RvcC1jb2xvcj0iI0U2MDBGRiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==" alt="JetBrains logo" class="foundation-preview_companyLogo__miayx"/><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI1IiBoZWlnaHQ9IjUyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF83NjMyXzMxNjczKSI+PHBhdGggZD0iTTUzLjgxNCAyOS43NWMwIDUuNDE0LTQuMjM1IDkuNDAzLTkuNDMyIDkuNDAzcy05LjQzMi0zLjk5LTkuNDMyLTkuNDAzYzAtNS40NTEgNC4yMzUtOS40MDIgOS40MzItOS40MDJzOS40MzIgMy45NSA5LjQzMiA5LjQwMnptLTQuMTI5IDBjMC0zLjM4My0yLjQ1NC01LjY5Ny01LjMwMy01LjY5Ny0yLjg0OCAwLTUuMzAzIDIuMzE0LTUuMzAzIDUuNjk3IDAgMy4zNSAyLjQ1NSA1LjY5OCA1LjMwMyA1LjY5OCAyLjg0OSAwIDUuMzAzLTIuMzUzIDUuMzAzLTUuNjk4eiIgZmlsbD0iI0VBNDMzNSIvPjxwYXRoIGQ9Ik03NC4xNjIgMjkuNzVjMCA1LjQxNC00LjIzNCA5LjQwMy05LjQzMiA5LjQwMy01LjE5NyAwLTkuNDMyLTMuOTktOS40MzItOS40MDMgMC01LjQ0NyA0LjIzNS05LjQwMiA5LjQzMi05LjQwMiA1LjE5OCAwIDkuNDMyIDMuOTUgOS40MzIgOS40MDJ6bS00LjEyOCAwYzAtMy4zODMtMi40NTUtNS42OTctNS4zMDQtNS42OTctMi44NDggMC01LjMwMyAyLjMxNC01LjMwMyA1LjY5NyAwIDMuMzUgMi40NTUgNS42OTggNS4zMDMgNS42OTggMi44NSAwIDUuMzA0LTIuMzUzIDUuMzA0LTUuNjk4eiIgZmlsbD0iI0ZCQkMwNSIvPjxwYXRoIGQ9Ik05My42NjIgMjAuOTE2djE2Ljg4YzAgNi45NDQtNC4wOTUgOS43OC04LjkzNiA5Ljc4LTQuNTU3IDAtNy4zLTMuMDQ4LTguMzM0LTUuNTRsMy41OTUtMS40OTdjLjY0IDEuNTMgMi4yMDkgMy4zMzYgNC43MzUgMy4zMzYgMy4wOTkgMCA1LjAyLTEuOTEyIDUuMDItNS41MXYtMS4zNTNoLS4xNDVjLS45MjQgMS4xNC0yLjcwNCAyLjEzNi00Ljk1MSAyLjEzNi00LjcwMSAwLTkuMDA4LTQuMDk1LTkuMDA4LTkuMzY0IDAtNS4zMDcgNC4zMDctOS40MzYgOS4wMDgtOS40MzYgMi4yNDIgMCA0LjAyMy45OTYgNC45NTEgMi4xMDJoLjE0NHYtMS41M2gzLjkyMXYtLjAwNHptLTMuNjI4IDguODY4YzAtMy4zMS0yLjIwOS01LjczMS01LjAyLTUuNzMxLTIuODQ4IDAtNS4yMzUgMi40Mi01LjIzNSA1LjczMSAwIDMuMjc3IDIuMzg3IDUuNjY0IDUuMjM2IDUuNjY0IDIuODEgMCA1LjAxOS0yLjM4NyA1LjAxOS01LjY2NHoiIGZpbGw9IiM0Mjg1RjQiLz48cGF0aCBkPSJNMTAwLjEyNyAxMS4wMjJ2MjcuNTU0SDk2LjFWMTEuMDIyaDQuMDI3eiIgZmlsbD0iIzM0QTg1MyIvPjxwYXRoIGQ9Ik0xMTUuODIgMzIuODQ1bDMuMjA1IDIuMTM2Yy0xLjAzNCAxLjUzLTMuNTI3IDQuMTY3LTcuODM0IDQuMTY3LTUuMzQxIDAtOS4zMy00LjEyOS05LjMzLTkuNDAyIDAtNS41OTEgNC4wMjMtOS40MDIgOC44NjgtOS40MDIgNC44NzkgMCA3LjI2NiAzLjg4MyA4LjA0NiA1Ljk4bC40MjggMS4wNy0xMi41NjkgNS4yMDVjLjk2MiAxLjg4NiAyLjQ1OSAyLjg0OSA0LjU1NyAyLjg0OSAyLjEwMyAwIDMuNTYxLTEuMDM1IDQuNjI5LTIuNjAzem0tOS44NjQtMy4zODNsOC40MDItMy40ODljLS40NjItMS4xNzQtMS44NTMtMS45OTItMy40ODktMS45OTItMi4wOTggMC01LjAxOSAxLjg1Mi00LjkxMyA1LjQ4eiIgZmlsbD0iI0VBNDMzNSIvPjxwYXRoIGQ9Ik0xOS43MDYgMjcuMzA0di0zLjk4OWgxMy40NDJjLjEzMi42OTUuMiAxLjUxOC4yIDIuNDA4IDAgMi45OTMtLjgxOCA2LjY5NC0zLjQ1NSA5LjMzLTIuNTY1IDIuNjcxLTUuODQyIDQuMDk1LTEwLjE4MyA0LjA5NS04LjA0NSAwLTE0LjgxMS02LjU1My0xNC44MTEtMTQuNiAwLTguMDQ1IDYuNzY2LTE0LjU5OSAxNC44MTEtMTQuNTk5IDQuNDUxIDAgNy42MjIgMS43NDcgMTAuMDA1IDQuMDIzTDI2LjkgMTYuNzg3Yy0xLjcwOC0xLjYwMi00LjAyMy0yLjg0OS03LjE5NC0yLjg0OS01Ljg3NSAwLTEwLjQ3IDQuNzM1LTEwLjQ3IDEwLjYxIDAgNS44NzYgNC41OTUgMTAuNjExIDEwLjQ3IDEwLjYxMSAzLjgxMSAwIDUuOTgyLTEuNTMgNy4zNzItMi45MiAxLjEyOC0xLjEyOCAxLjg3LTIuNzM5IDIuMTYyLTQuOTM5bC05LjUzNC4wMDR6IiBmaWxsPSIjNDI4NUY0Ii8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDBfNzYzMl8zMTY3MyI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLjQxNyA5Ljc1KSIgZD0iTTAgMGgxMjMuOTY0djM5SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+" alt="Google logo" class="foundation-preview_companyLogo__miayx"/><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI0IiBoZWlnaHQ9IjQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik02Ni41MSAyNS4yNDR2Ni45OTdhOS4xODggOS4xODggMCAwMS0yLjgwMyAxLjQyIDEwLjk0IDEwLjk0IDAgMDEtMy4xOS40NDYgMTAuNTcyIDEwLjU3MiAwIDAxLTMuODMyLS42NTcgOC41ODcgOC41ODcgMCAwMS0yLjkxOS0xLjg0NiA4LjA5NSA4LjA5NSAwIDAxLTEuODctMi43OTkgOS40MiA5LjQyIDAgMDEtLjY1OC0zLjU1IDkuODIgOS44MiAwIDAxLjYzMi0zLjU4MiA3Ljg2MyA3Ljg2MyAwIDAxNC42MS00LjYxNSAxMC4yMjUgMTAuMjI1IDAgMDEzLjczNi0uNjQ3Yy42Ni0uMDAzIDEuMzE3LjA1MiAxLjk2Ni4xNjYuNTguMTA1IDEuMTQ4LjI1OSAxLjcuNDYxLjUuMTg3Ljk4LjQyNiAxLjQzLjcxMy40MjcuMjc2LjgyOC41OSAxLjE5OS45MzhsLS45MjMgMS40NmEuODYzLjg2MyAwIDAxLS41NjIuNDIgMS4wMDQgMS4wMDQgMCAwMS0uNzUyLS4xN2wtLjc3My0uNDU3YTUuMjY4IDUuMjY4IDAgMDAtLjg3Ny0uMzk2IDcuNjczIDcuNjczIDAgMDAtMi40ODMtLjM4MSA1Ljk3MyA1Ljk3MyAwIDAwLTIuMzEyLjQzMSA0Ljg0NiA0Ljg0NiAwIDAwLTEuNzY2IDEuMjM0IDUuNDY4IDUuNDY4IDAgMDAtMS4xMjMgMS45MjYgNy40NjUgNy40NjUgMCAwMC0uMzk3IDIuNTA4IDcuNjQgNy42NCAwIDAwLjQyNyAyLjY0OCA1LjU0OCA1LjU0OCAwIDAwMS4xOTQgMS45NzcgNS4wOSA1LjA5IDAgMDAxLjg0NSAxLjIxMyA3LjE2MiA3LjE2MiAwIDAwNC4xMzguMjIxYy41MDgtLjEzNyAxLjAwMS0uMzIgMS40NzUtLjU0N3YtMy4xMTRINjEuNDRhLjY1My42NTMgMCAwMS0uNTAyLS4xNzYuNTc2LjU3NiAwIDAxLS4xNzUtLjQyNnYtMS44MTZoNS43NDh6bTUuMjUyLTEuNDdhNS4yODEgNS4yODEgMCAwMTEuMzY1LTEuNzNjLjUzLS40MiAxLjE5LS42NDIgMS44NjYtLjYyNy40ODItLjAyNi45Ni4xMDUgMS4zNjQuMzcxTDc2LjE2NyAyNGEuNTkyLjU5MiAwIDAxLS4xNzEuMzA2LjUwMi41MDIgMCAwMS0uMzA2LjA5IDMuMzkgMy4zOSAwIDAxLS41MzItLjA2IDQuMTMgNC4xMyAwIDAwLS42OTItLjA2IDIuNTA3IDIuNTA3IDAgMDAtLjg3My4xNCAyLjE5IDIuMTkgMCAwMC0uNjg3LjQxNyAyLjc4NCAyLjc4NCAwIDAwLS41MzcuNjUyYy0uMTY4LjI3OS0uMzE0LjU3LS40MzYuODczdjcuNTU4aC0yLjkxNFYyMS42NDNoMS43M2EuOTcyLjk3MiAwIDAxLjYzNy4xNi45NTMuOTUzIDAgMDEuMjQxLjU4MmwuMTM1IDEuMzl6bTUuNjk4LS40MmE3LjI2OCA3LjI2OCAwIDAxNS4xMDEtMS45MzcgNC45NzQgNC45NzQgMCAwMTEuOTI2LjM1MSA0LjA0MyA0LjA0MyAwIDAxMS40MzUgMS4wMDNjLjQuNDM0LjcwNC45NDYuODkzIDEuNTA1LjIwOC42MTcuMzExIDEuMjY1LjMwNiAxLjkxNnY3LjcyNGgtMS4zNDVhMS4zMjUgMS4zMjUgMCAwMS0uNjQyLS4xMjUuODYzLjg2MyAwIDAxLS4zNi0uNTAybC0uMjYyLS44ODhjLS4yOS4yNjQtLjU5NC41MS0uOTEyLjczOGE1LjQ0OCA1LjQ0OCAwIDAxLS45MTguNTMxIDUuMiA1LjIgMCAwMS0xLjAwNC4zMzFjLS4zOTYuMDc4LS44LjExNS0xLjIwMy4xMWE0LjgzNiA0LjgzNiAwIDAxLTEuNDM1LS4yMDUgMy4xNDggMy4xNDggMCAwMS0xLjEzOC0uNjMyIDIuODA4IDIuODA4IDAgMDEtLjc0My0xLjAzOCAzLjcwNCAzLjcwNCAwIDAxLS4yNi0xLjQ1YzAtLjMxNS4wNTItLjYyOS4xNTUtLjkyOC4xMS0uMzIyLjI4LS42Mi41MDItLjg3Ny4yNjUtLjMwNi41NzUtLjU3Mi45MTgtLjc4OGE1LjU5OCA1LjU5OCAwIDAxMS4zNzktLjY0NyAxMS42NjYgMTEuNjY2IDAgMDExLjkxLS40NTEgMTguNDQgMTguNDQgMCAwMTIuNTA5LS4yMDZ2LS43MjJhMi42ODQgMi42ODQgMCAwMC0uNTI3LTEuODI2IDEuOTIgMS45MiAwIDAwLTEuNTA1LS41OTIgMy42NjEgMy42NjEgMCAwMC0xLjE5NC4xNjYgNC43MSA0LjcxIDAgMDAtLjgyNy4zNzZsLS42NTIuMzc2YTEuMjYzIDEuMjYzIDAgMDEtLjY1Mi4xNy44NTMuODUzIDAgMDEtLjUyNy0uMTYgMS4zMDkgMS4zMDkgMCAwMS0uMzQ2LS4zOGwtLjU4Mi0uOTQ0em02Ljc3MiA1LjMyYTE1Ljg4IDE1Ljg4IDAgMDAtMi4xNTcuMjI3IDUuNTIgNS41MiAwIDAwLTEuNC40MWMtLjI5OS4xMjUtLjU1OS4zMjgtLjc1Mi41ODhhMS40NSAxLjQ1IDAgMDAuMjM2IDEuODRjLjM1Mi4yMzkuNzczLjM1NyAxLjE5OC4zMzZhMy41MSAzLjUxIDAgMDAxLjU3NS0uMzMgNC43NzYgNC43NzYgMCAwMDEuMy0xLjAwNHYtMi4wNjZ6bTE2LjMxNi0xMi41Mzh2MTcuNzhoLTEuODA2QS42OTcuNjk3IDAgMDE5OCAzMy4zOGwtLjI1MS0xLjE4NGE2LjIyMyA2LjIyMyAwIDAxLTEuNzA1IDEuMzc0IDQuNiA0LjYgMCAwMS0yLjI0Mi41MDIgMy45ODcgMy45ODcgMCAwMS0zLjI4Ni0xLjYzNSA1LjgyNSA1LjgyNSAwIDAxLS45MzMtMS45NDEgOS44OCA5Ljg4IDAgMDEtLjMzLTIuNjc5IDguNDEgOC40MSAwIDAxLjM3LTIuNTM4Yy4yMjgtLjczLjU5LTEuNDEgMS4wNjktMi4wMDZhNC45NTQgNC45NTQgMCAwMTEuNjYtMS4zNSA0LjgzNSA0LjgzNSAwIDAxMi4xNzctLjUgNC4zMjggNC4zMjggMCAwMTEuNzYuMzJjLjQ4My4yMTMuOTI0LjUwOCAxLjMwNC44NzNWMTYuMTRsMi45NTUtLjAwNXptLTIuOTQgOC42NDJhMi45NzkgMi45NzkgMCAwMC0xLjA5My0uODYzIDMuMjggMy4yOCAwIDAwLTEuMjc0LS4yNSAyLjg0OCAyLjg0OCAwIDAwLTEuMjA5LjI1IDIuNDQzIDIuNDQzIDAgMDAtLjkzOC43NjIgMy42MDYgMy42MDYgMCAwMC0uNTg3IDEuMjkgNy40MzQgNy40MzQgMCAwMC0uMiAxLjg1IDguMTk4IDguMTk4IDAgMDAuMTcgMS44MmMuMDkuNDM2LjI2Ljg1MS41MDIgMS4yMjVhMS45IDEuOSAwIDAwLjc5Mi42ODJjLjMyOC4xNDEuNjgyLjIxMiAxLjAzOS4yMDZhMy4wMSAzLjAxIDAgMDAxLjU3LS4zODIgNC42MDggNC42MDggMCAwMDEuMjI5LTEuMDg4di01LjUwMnptOC44NjMtOC42Mzd2MTcuNzc1aC0yLjk1NFYxNi4xNDFoMi45NTR6bTUuMjMyIDEyLjAwN2MuMDMxLjU1OS4xNDQgMS4xMS4zMzYgMS42MzUuMTUuNDIzLjM4Ni44MS42OTIgMS4xMzkuMjguMjk1LjYyMy41MjMgMS4wMDMuNjY3LjQxOS4xNTMuODYzLjIyOCAxLjMwOS4yMi40MTkuMDA5LjgzNy0uMDQ3IDEuMjM5LS4xNjUuMzEzLS4wOTguNjE2LS4yMjIuOTA4LS4zNzEuMjYxLS4xMzYuNTAxLS4yNi42ODItLjM3MS4xNzEtLjEwMy4zNjctLjE2LjU2Ny0uMTY2YS42MDUuNjA1IDAgMDEuNTUyLjI3NmwuODY3IDEuMDk0Yy0uMzE0LjM3NS0uNjg0LjctMS4wOTguOTYzYTYuMTE1IDYuMTE1IDAgMDEtMS4yNzQuNjIxIDcuMDIyIDcuMDIyIDAgMDEtMS4zNTQuMzMyIDkuNDQ1IDkuNDQ1IDAgMDEtMS4zMy4wOTUgNi40ODUgNi40ODUgMCAwMS0yLjM4Mi0uNDI2IDUuMzM0IDUuMzM0IDAgMDEtMS45MTYtMS4yNTQgNS45MSA1LjkxIDAgMDEtMS4yNzktMi4wNTcgNy45ODUgNy45ODUgMCAwMS0uNDY3LTIuODQ0IDYuNzk2IDYuNzk2IDAgMDEuNDA3LTIuMzYyIDUuNjg0IDUuNjg0IDAgMDExLjE2OC0xLjkyNiA1LjUyMSA1LjUyMSAwIDAxMS44NTEtMS4zIDYuMTc2IDYuMTc2IDAgMDEyLjQ3My0uNSA1Ljk1IDUuOTUgMCAwMTIuMTQyLjM3IDQuNjM3IDQuNjM3IDAgMDExLjY4NSAxLjA4NCA0LjkyNyA0LjkyNyAwIDAxMS4xMDggMS43NDVjLjI3OS43NTYuNDE1IDEuNTU3LjQwMiAyLjM2My4wMjUuMzA4LS4wMjUuNjE4LS4xNDYuOTAyYS41OTMuNTkzIDAgMDEtLjU1Mi4yMzFsLTcuNTkzLjAwNXptNS42MzItMS43OGMwLS4zNjgtLjA1Ni0uNzMzLS4xNjUtMS4wODRhMi41ODQgMi41ODQgMCAwMC0uNTAyLS44ODggMi4yMyAyLjIzIDAgMDAtLjgxNy0uNjA3IDIuODQ5IDIuODQ5IDAgMDAtMS4xNTQtLjIyIDIuNzQgMi43NCAwIDAwLTIuMDA2LjcyNyAzLjU3NCAzLjU3NCAwIDAwLS45MzggMi4wNzJoNS41ODJ6TTQ1LjA3NCA0LjAxOGE2Ljg4MiA2Ljg4MiAwIDAwLTkuNTctLjE2MS42MzUuNjM1IDAgMDAtLjIwNi40NjYuNjU3LjY1NyAwIDAwLjE5LjQ3N2wuODY4Ljg2OGEuNjU3LjY1NyAwIDAwLjg1OC4wNiAzLjk0NyAzLjk0NyAwIDAxNS4xNTYgNS45NDlDMzYuOTE4IDE3LjE1OSAyOS42IDEuODQgMTMuMDQzIDkuNzJhMi4yNDggMi4yNDggMCAwMC0xLjAwMyAzLjE1NWwyLjgzOSA0LjkxYTIuMjUyIDIuMjUyIDAgMDAzLjA0NS44MzhsLjA3LS4wNC0uMDU1LjA0IDEuMjU5LS43MDdhMjguOTU1IDI4Ljk1NSAwIDAwMy45NjctMi45NTQuNjg3LjY4NyAwIDAxLjkwMy0uMDMuNjQ3LjY0NyAwIDAxMCAxLjAwMyAyOS45OTIgMjkuOTkyIDAgMDEtNC4xNDggMy4xM2wtLjA0NS4wMjUtMS4yNi43MDJjLS41My4zLTEuMTMuNDU4LTEuNzQuNDU2YTMuNjA3IDMuNjA3IDAgMDEtMy4xMjQtMS43OWwtMi42ODktNC42MzVDNS45MDYgMTcuNDY1IDIuNzc2IDI0LjQ4MiA0LjQ1NiAzMy4zNmEuNjU3LjY1NyAwIDAwLjY0Ny41MzJoMy4wNTVhLjY1Mi42NTIgMCAwMC42NzItLjU3MiA0LjQ4NCA0LjQ4NCAwIDAxOC44OTMgMCAuNjUyLjY1MiAwIDAwLjYzNy41NzJoMi45OGEuNjU3LjY1NyAwIDAwLjY1MS0uNTcyIDQuNDc4IDQuNDc4IDAgMDE4Ljg4OCAwIC42NTEuNjUxIDAgMDAuNjQ3LjU3MmgyLjk0NGEuNjUyLjY1MiAwIDAwLjY1My0uNjQyYy4wNy00LjE1MyAxLjE4OC04LjkyMyA0LjM4My0xMS4zMSAxMS4wMy04LjI2NiA4LjEyNi0xNS4zNTMgNS41NjgtMTcuOTIyem0tMTEuMjcgMTIuNDk5bC0yLjEwNy0xLjA1OWExLjMyNCAxLjMyNCAwIDExMi4xMDYgMS4wNjR2LS4wMDV6IiBmaWxsPSIjMDIzMDNBIi8+PC9zdmc+" alt="Gradle logo" class="foundation-preview_companyLogo__miayx"/><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI2IiBoZWlnaHQ9IjQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMi4yMTIgMjAuMDg3aC00LjA3OHYxMi42OTRIMTUuMTFWMjAuMDg3SDExdi0yLjgxNmgxMS4yMTJ2Mi44MTZ6bTEzLjM0LjgwM2MuNjU4IDEuMjIuOTgxIDIuNTg3Ljk4MSA0LjExIDAgMS41MjMtLjMyMyAyLjktLjk4IDQuMTFhNy4zMDIgNy4zMDIgMCAwMS0yLjcxMiAyLjg1N0MzMS42OTQgMzIuNjU2IDMwLjQgMzMgMjguOTYgMzNzLTIuNzQzLS4zNDQtMy44OS0xLjAzM2E3LjE1OSA3LjE1OSAwIDAxLTIuNzEzLTIuODU3Yy0uNjU3LTEuMjItLjk4LTIuNTg3LS45OC00LjExIDAtMS41MjMuMzIzLTIuOS45OC00LjExYTcuMzAzIDcuMzAzIDAgMDEyLjcxMi0yLjg1N0MyNi4yMjggMTcuMzQ0IDI3LjUyMSAxNyAyOC45NiAxN2MxLjQzIDAgMi43MjMuMzQ0IDMuODggMS4wMzNhNy4zMDIgNy4zMDIgMCAwMTIuNzEzIDIuODU3ek0zMy41NCAyNWMwLTEuMDEyLS4xOTgtMS45Mi0uNTg0LTIuNzIyLS4zODYtLjc5My0uOTI5LTEuNDE5LTEuNjI3LTEuODU3LS43LS40NDgtMS40ODItLjY2Ny0yLjM2OC0uNjY3LS44ODcgMC0xLjY4LjIxOS0yLjM3OC42NjctLjY5OS40NDktMS4yNDEgMS4wNjQtMS42MzggMS44NTctLjM5Ni43OTItLjU4NCAxLjctLjU4NCAyLjcyMnMuMTk4IDEuOTIuNTg0IDIuNzIyYy4zOTcuNzkzLjkzOSAxLjQxOSAxLjYzOCAxLjg1Ny42OTkuNDQ4IDEuNDkxLjY2NyAyLjM3OC42NjcuODY2IDAgMS42NDgtLjIxOSAyLjM0Ny0uNjY3LjY5OS0uNDQ5IDEuMjQtMS4wNjQgMS42MzctMS44NTcuMzk3LS44MDMuNTk1LTEuNzEuNTk1LTIuNzIyem0xMi43NjYgMS43OTRjMCAuNjg4LS4xMjUgMS4zMDQtLjM4NiAxLjgzNmEzLjA1IDMuMDUgMCAwMS0xLjA5NSAxLjI1MWMtLjQ3LjMwMy0xLjAxMS40NDktMS42MzcuNDQ5LS42MzcgMC0xLjItLjE0Ni0xLjY4LS40MzhhMi45MDIgMi45MDIgMCAwMS0xLjExNi0xLjI1MmMtLjI2LS41NDItLjM5Ni0xLjE1OC0uMzk2LTEuODQ2di05LjUzM0gzNy4xOHY5LjU2NGMwIDEuMjEuMjUgMi4yNzQuNzUgMy4yMTNhNS40NiA1LjQ2IDAgMDAyLjExOCAyLjE4Yy45MDguNTIxIDEuOTUuNzgyIDMuMTQuNzgyIDEuMTU3IDAgMi4xOS0uMjYgMy4wODctLjc4MmE1LjQxMiA1LjQxMiAwIDAwMi4wOTctMi4xOGMuNS0uOTI4Ljc1LTIuMDAzLjc1LTMuMjEzdi05LjU2NGgtMi44MjZ2OS41MzNoLjAxem0yOC4yODctMy4zMzhoLTYuNTd2LTYuMTk1aC0zLjAxNXYxNS40NjhoMy4wMTR2LTYuNDY3aDYuNTcxdjYuNDY3aDMuMDE1VjE3LjI2aC0zLjAxNXY2LjE5NXptNDAuNzA5IDQuOTk2YzAgLjgzNS0uMjE5IDEuNTc1LS42NjcgMi4yMjItLjQzOC42NDctMS4wNjQgMS4xNTgtMS44NTcgMS41MjMtLjgwMy4zNjUtMS43MjEuNTQyLTIuNzUzLjU0MmgtOS43NTNsLTEuMjUxLTMuMDk3aC02LjAxOGwtMS4xNDggMy4wOTdoLTEyLjg1VjE3LjI2MUg4MnYxMi42NTJoNy43MjlsNC40NzQtMTIuNjUyaDMuNDk0bDUuNTcgMTUuMzExVjE3LjI2MWg2LjYzNGMuOTkgMCAxLjg1Ni4xNzcgMi42MTguNTIxLjc2MS4zNDUgMS4zNDUuODI0IDEuNzYyIDEuNDQuNDE4LjYxNS42MjYgMS4zMTQuNjI2IDIuMTA3IDAgLjg0NC0uMjI5IDEuNTU0LS42OTkgMi4xNDgtLjQ1OS41OTUtMS4xMTYgMS4wMDItMS45NCAxLjIzMS45NDkuMjMgMS42OS42NzggMi4yMzIgMS4zMzUuNTMyLjY2OC44MDMgMS40Ny44MDMgMi40MXptLTE3LjA4NC0xLjU1NGwtMi4wOTctNi4wNy0uMjE5LS45NS0uMjMuOTUtMS45NiA2LjA3aDQuNTA2em04LTMuMDk4aDMuMjg1Yy40NTkgMCAuODU2LS4wODMgMS4yLS4yNmExLjkzIDEuOTMgMCAwMC44MDMtLjc1MWMuMTg4LS4zMjQuMjkyLS42OTkuMjkyLTEuMTE2IDAtLjYyNi0uMjA5LTEuMTI3LS42MjYtMS41MDItLjQxNy0uMzc2LS45OC0uNTYzLTEuNjY5LS41NjNoLTMuMjg1VjIzLjh6bTUuOTQ1IDQuNDMzYzAtLjQzOC0uMTA0LS44MTMtLjMyMy0xLjE0Ny0uMjA5LS4zMzQtLjUxMS0uNTg0LS44OTctLjc3MmEzLjExNiAzLjExNiAwIDAwLTEuMzE1LS4yNzFoLTMuNDF2NC4zNWgzLjQxYy40OTEgMCAuOTI5LS4wOTQgMS4zMTUtLjI3Mi4zODYtLjE3Ny42NzgtLjQzOC44OTctLjc2MS4yMTktLjMxMy4zMjMtLjY5OS4zMjMtMS4xMjd6bS01MS40MjEuNDZjLS40MDcuNDgtLjkxOC44NTUtMS41MjMgMS4xMzZhNC41ODMgNC41ODMgMCAwMS0xLjk1LjQxN2MtLjkwOCAwLTEuNzExLS4yMTktMi40My0uNjY3LS43MS0uNDQ5LTEuMjYzLTEuMDY0LTEuNjctMS44NjctLjQwNi0uODAzLS42MDQtMS43LS42MDQtMi43MTIgMC0xLjAxMi4xOTgtMS45MDkuNjA1LTIuNzEyYTQuNTM4IDQuNTM4IDAgMDExLjY2OC0xLjg2N2MuNzEtLjQ0OCAxLjUyMy0uNjY3IDIuNDMtLjY2Ny42ODkgMCAxLjM0Ni4xNDYgMS45NTEuNDI3YTQuNDE3IDQuNDE3IDAgMDExLjUyMyAxLjE0OGMuMTk4LjIyOS4zNTUuNDY5LjQ5LjcyaDMuMTVhNS44NTQgNS44NTQgMCAwMC0uOTktMi4wOTdjLS42NjgtLjkwOC0xLjUzNC0xLjYxNy0yLjU5OC0yLjE0OS0xLjA3NC0uNTMyLTIuMjQyLS43OTMtMy41MDUtLjc5My0xLjQ4IDAtMi44MTYuMzQ1LTMuOTk0IDEuMDQzLTEuMi42NzgtMi4xMjggMS42MjgtMi44MDYgMi44NDgtLjY3OCAxLjIyLTEuMDEyIDIuNTg3LTEuMDEyIDQuMDk5cy4zMzQgMi44NzkgMS4wMTIgNC4xYTcuNDEgNy40MSAwIDAwMi43ODUgMi44NTdjMS4xODkuNjg4IDIuNTI0IDEuMDQzIDMuOTk1IDEuMDQzIDEuMjYyIDAgMi40NC0uMjYgMy41MDQtLjc5M2E2Ljk3IDYuOTcgMCAwMDIuNTk3LTIuMTI4Yy41MTEtLjY5OC44NTYtMS40MzkgMS4wMjItMi4yMzJoLTMuMTA4YTMuMTM0IDMuMTM0IDAgMDEtLjU0Mi44NDV6IiBmaWxsPSIjMTkxOTFDIi8+PC9zdmc+" alt="Touchlab logo" class="foundation-preview_companyLogo__miayx"/><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI0IiBoZWlnaHQ9IjQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zMC4wNTggMTMuOTgyYS4yODMuMjgzIDAgMDAtLjI3LS4yNDZjLS4xMTEgMC0yLjMyOS0uMDQ1LTIuMzI5LS4wNDVzLTEuODU5LTEuNzkyLTIuMDM4LTEuOTk0Yy0uMTgtLjE3OS0uNTM4LS4xMzQtLjY3Mi0uMDkgMCAwLS4zNTkuMTEzLS45NDEuMjkyYTYuNjggNi42OCAwIDAwLS40NDgtMS4wOThjLS42NS0xLjI1NC0xLjYzNS0xLjkyNi0yLjgtMS45MjYtLjA5IDAtLjE1NyAwLS4yNDYuMDIyLS4wNDUtLjA0NS0uMDY4LS4wOS0uMTEyLS4xMTItLjUxNi0uNTM3LTEuMTY1LS44MDYtMS45NS0uNzg0LTEuNS4wNDUtMyAxLjE0My00LjIzMyAzLjA3LS44NTEgMS4zNjYtMS41IDMuMDY4LTEuNzAyIDQuMzktMS43MjUuNTM3LTIuOTM1LjkxOC0yLjk4LjkxOC0uODczLjI2OS0uODk1LjI5MS0xLjAwNyAxLjEyLS4wNDUuNjI3LTIuMzMgMTguMy0yLjMzIDE4LjNsMTkuMTc0IDMuMzE2IDguMzEtMi4wNmMtLjAyMiAwLTMuNDA0LTIyLjkxNi0zLjQyNi0yMy4wNzN6bS03LjIxMy0xLjc3Yy0uNDQ4LjEzNS0uOTQxLjI5Mi0xLjQ3OS40NyAwLS43Ni0uMTEyLTEuODM2LS40NDgtMi43MzIgMS4xNDMuMTggMS43MDMgMS40NzkgMS45MjcgMi4yNjN6bS0yLjQ4Ny43NjJjLTEuMDA4LjMxNC0yLjEwNS42NS0zLjIwMy45ODYuMzE0LTEuMTg4Ljg5Ni0yLjM1MiAxLjYxMy0zLjEzNi4yNjktLjI5MS42NS0uNjA1IDEuMDc1LS43ODQuNDQ4Ljg3My41MzggMi4xMDUuNTE1IDIuOTM0em0tMi4wNi0zLjk2NWMuMzU4IDAgLjY1LjA2Ny44OTYuMjQ3YTMuOTY5IDMuOTY5IDAgMDAtMS4xNjUuOTE4Yy0uOTYzIDEuMDMtMS43MDMgMi42Mi0xLjk5NCA0LjE2Ny0uOTE4LjI5LTEuODE0LjU2LTIuNjIuODA2LjUzNy0yLjQ0MiAyLjU3NS02LjA3IDQuODgzLTYuMTM4eiIgZmlsbD0iIzk1QkY0NyIvPjxwYXRoIGQ9Ik0yOS43ODkgMTMuNzM2Yy0uMTEyIDAtMi4zMy0uMDQ1LTIuMzMtLjA0NXMtMS44Ni0xLjc5Mi0yLjAzOC0xLjk5NGEuMzYuMzYgMCAwMC0uMjQ3LS4xMTJ2MjcuNTNsOC4zMS0yLjA2cy0zLjM4Mi0yMi45MTYtMy40MDQtMjMuMDczYy0uMDQ1LS4xNTctLjE4LS4yNDYtLjI5MS0uMjQ2eiIgZmlsbD0iIzVFOEUzRSIvPjxwYXRoIGQ9Ik0yMC41NiAxOC4wMTRsLS45NjMgMy42MDdzLTEuMDc2LS40OTMtMi4zNTMtLjQwNGMtMS44ODEuMTEyLTEuODgxIDEuMy0xLjg4MSAxLjU5LjExMiAxLjYxNCA0LjM0NiAxLjk3MiA0LjU5MiA1Ljc1OC4xOCAyLjk3OS0xLjU2OCA1LjAxNy00LjEyMiA1LjE3NC0zLjA0Ni4xNTctNC43MjYtMS42MzUtNC43MjYtMS42MzVsLjY1LTIuNzU1czEuNzAyIDEuMjc2IDMuMDQ2IDEuMTg3YTEuMTg4IDEuMTg4IDAgMDAxLjE2NS0xLjI3N2MtLjEzNS0yLjEwNi0zLjU4NC0xLjk3MS0zLjgwOC01LjQ0My0uMTgtMi45MTIgMS43MjQtNS44NDcgNS45MzYtNi4xMTUgMS42MzUtLjExMyAyLjQ2NC4zMTMgMi40NjQuMzEzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA0Ljg5NiAyMC4zMjFoLTIuNjQzbC4xMzQtLjYyN2MuMjI0LTEuMy45ODYtMi40NDIgMi4yNjMtMi40NDIuNjcyIDAgMS4yMDkuMjAyIDEuMjA5LjIwMmwuNzM5LTIuOThzLS42NDktLjMzNS0yLjA2LS4zMzVjLTEuMzQ0IDAtMi42ODguMzgtMy43MTkgMS4yNTQtMS4yOTkgMS4wOTgtMS45MDQgMi42ODgtMi4xOTUgNC4zMDFsLS4xMTIuNjI3aC0xLjc3bC0uNTYgMi44NjdoMS43N2wtMi4wMTYgMTAuNjE4aDMuNzg2bDIuMDE2LTEwLjYxOGgyLjYybC41MzgtMi44Njd6bS01MC42MDIgMS43MjVjMS4wMDktMS4yMSAyLjMzLTIuMDE2IDQuMDEtMi4wMTYgMS45OTQgMCAzLjExNCAxLjMgMy4wOTEgMy40NSAwIC42NzEtLjExMiAxLjY1Ny0uMjY5IDIuNDg2bC0xLjQ3OCA3Ljg0aC0zLjc4NmwxLjQzNC03LjU5NGMuMTEyLS41MTUuMTU3LTEuMTY1LjE1Ny0xLjY4IDAtLjgyOS0uMzM2LTEuNDEtMS4xODctMS40MS0xLjIxIDAtMi41MSAxLjU0NS0zLjAwMiA0LjA1M2wtMS4yNTQgNi42MzFoLTMuNzg2bDMuNjk2LTE5LjM5OGgzLjc4NmwtMS40NTYgNy42MTUuMDQ0LjAyM3ptLTExLjAyIDIuMDgzYzAgLjYwNS40OTIgMS4wNTMgMS40NTUgMS41NjggMS40NzkuODUxIDIuNzEgMi4wMTYgMi43MzMgMy42NTEgMCAzLjAyNC0yLjQ2NCA0LjcwNC01Ljg2OSA0LjcwNC0yLjM1MiAwLTMuNzQtLjk0LTMuNzQtLjk0bC45NC0yLjY4OXMxLjUyMy44MyAzLjExNC44M2MxLjA3NSAwIDEuNjU4LS41ODMgMS42NTgtMS4zIDAtLjY5NC0uNDA0LTEuMTY1LTEuNTY5LTEuODE0LTEuNDMzLS44My0yLjUwOC0xLjk3MS0yLjUwOC0zLjQ5NSAwLTIuNjY1IDIuMzA3LTQuNTcgNS42MjItNC41NyAyLjM3NCAwIDMuMTguNjI4IDMuMTguNjI4bC0uODczIDIuNjg4cy0xLjEyLS41MTUtMi4zNzQtLjUxNWMtMS4wNzUgMC0xLjc3LjQ5Mi0xLjc3IDEuMjU0em0yNi43MjMtNC4wOTljLTQuNTcgMC03LjU5NCA0LjEyMi03LjU5NCA4LjcxNCAwIDIuOTM0IDEuODE1IDUuMzA4IDUuMjIgNS4zMDggNC40OCAwIDcuNTAzLTQuMDEgNy41MDMtOC43MTMuMDIzLTIuNzEtMS41NjgtNS4zMDktNS4xMy01LjMwOXptLTEuODYgMTEuMTMzYy0xLjI5OSAwLTEuODM2LTEuMDk4LTEuODM2LTIuNDg3IDAtMi4xNzIgMS4xMi01LjcxMiAzLjE4LTUuNzEyIDEuMzQ0IDAgMS43OTIgMS4xNjUgMS43OTIgMi4yODUgMCAyLjMzLTEuMTQyIDUuOTE0LTMuMTM2IDUuOTE0em0xMi43MDEtOC44N3MxLjQ1Ni0yLjI2MyA0LjAxLTIuMjYzYzIuNzc4IDAgMy45MiAyLjI4NSAzLjkyIDQuODM4IDAgNC42MTUtMi45MTIgOS4xODQtNy4zNyA5LjE4NC0xLjQzMyAwLTIuMjE3LS40OTItMi4yMTctLjQ5MmgtLjA5bC0xLjA1MyA1LjYyMmgtMy43ODVsMi42NDMtMTMuODg4Yy4yOTEtMS41NjguNjA1LTMuNjc0Ljc2Mi01LjA0aDMuMzZsLS4yMjQgMi4wMzhoLjA0NHptLTEuMTg3IDguMzU1cy41ODMuNTYgMS41NjguNTZjMi4xMjggMCAzLjU4NC0zLjQ5NSAzLjU4NC01Ljk1OSAwLTEuMDA4LS4zNTgtMi4wODMtMS41MjMtMi4wODMtMS4zMjIgMC0yLjU1NCAxLjU2OC0zLjAwMiAzLjk0MmwtLjYyNyAzLjU0ek05NC4xOSAxNC41ODdjLTEuMjEgMC0yLjE3My45NjMtMi4xNzMgMi4xOTUgMCAxLjEyLjcxNyAxLjkwNCAxLjc5MiAxLjkwNGguMDQ1YzEuMTg3IDAgMi4xOTUtLjgwNiAyLjIxNy0yLjE5NSAwLTEuMDk4LS43MzktMS45MDQtMS44ODEtMS45MDR6bS0xLjUyNCAxOS4xOTdIODguODhsMi41NTMtMTMuNDRoMy44MDhsLTIuNTc2IDEzLjQ0em0xNy45NDMtNC4xOWMxLjA1My0zLjI3IDMuNDI3LTkuMjUgMy40MjctOS4yNUgxMThsLTQuNjM3IDkuOTY4Yy0xLjYzNSAzLjQwNS0zLjI0OCA1LjkxMy00Ljk3MyA3LjUyNi0xLjM0NCAxLjI1NS0yLjk1NiAxLjkwNC0zLjcxOCAyLjA2bC0xLjA1My0zLjIyNWMuNjI3LS4yMjQgMS40MzQtLjU2IDIuMTUxLTEuMDc1Ljg3My0uNjA1IDEuNjEyLTEuNDM0IDIuMDYtMi4yODUuMTEyLS4xNzkuMTM1LS4zNTguMDktLjYyN2wtMi4yODUtMTIuMzQyaDMuOTg3cy44NzQgOC4xOTguOTQxIDkuMjVoLjA0NXoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=" alt="Shopify logo" class="foundation-preview_companyLogo__miayx"/><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzciIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNjYwXzE2NjI3KSIgZmlsbD0iIzAwMCI+PHBhdGggZD0iTTEzLjQwNSAzMi4yMzNjMy4yNSAwIDUuNzYyLTIuNSA1Ljc2Mi02LjJWMTEuNjM2aDMuNTE4djIzLjMzSDE5LjJ2LTIuMTY3Yy0xLjU3NSAxLjYzMy0zLjc1MiAyLjU2Ni02LjE5OCAyLjU2Ni01LjAyNiAwLTguODc5LTMuNjMzLTguODc5LTkuMTNWMTEuNjRoMy41MTd2MTQuMzkzYzAgMy43NjYgMi40OCA2LjIgNS43NjMgNi4yTTI1LjI5OSAxMS42MzZoMy4zODR2OC40OThhOC40NSA4LjQ1IDAgMDEyLjc3NC0xLjg3OCA4LjQ4NyA4LjQ4NyAwIDAxMy4yOS0uNjU1YzUuMDI1IDAgOC45NzggMy45NjYgOC45NzggOC44OTkgMCA0Ljg5OS0zLjk1MyA4Ljg2NC04Ljk3OSA4Ljg2NGE4LjU2NCA4LjU2NCAwIDAxLTYuMS0yLjUzMnYyLjEzMmgtMy4zNTJsLjAwNS0yMy4zMjh6bTkuMjEzIDIwLjc2M2MzLjIxNyAwIDUuODY0LTIuNjM0IDUuODY0LTUuOSAwLTMuMy0yLjY0Ny01Ljg5OC01Ljg2NC01Ljg5OC0zLjI1IDAtNS44OTYgMi41OTktNS44OTYgNS44OTkgMCAzLjI2NSAyLjYxMyA1Ljg5OSA1Ljg5NiA1Ljg5OXpNNTMuODQ1IDE3LjYzNWM0LjkyNCAwIDguNTQzIDMuNzY2IDguNTQzIDguODMydjEuMUg0OC40ODZjLjQ3IDIuNzY2IDIuNzggNC44MzIgNS42NiA0LjgzMiAxLjk3OSAwIDMuNjUzLS44IDQuOTI1LTIuNWwyLjQ0NyAxLjhjLTEuNzEgMi4yNjYtNC4yNTYgMy42MzItNy4zNzIgMy42MzItNS4xMjYgMC05LjA4LTMuNzk5LTkuMDgtOC44NjQgMC00LjggMy43ODctOC44MzIgOC43OC04LjgzMk00OC41NSAyNC45aDEwLjQyYy0uNTctMi42LTIuNjgtNC4zMzItNS4xOTMtNC4zMzItMi41MTIgMC00LjYyMyAxLjczMy01LjIyNyA0LjMzMnpNNzEuNDY3IDIwLjk2N2MtMi4yMTEgMC0zLjgyIDEuNy0zLjgyIDQuMzMzdjkuNjY1aC0zLjM4M1YxNy45NjhoMy4zNTJ2Mi4xMDFjLjgzOC0xLjM2NyAyLjIxMi0yLjIzMyA0LjA4OC0yLjIzM2gxLjE3MnYzLjEzM2wtMS40MDktLjAwMnoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJjbGlwMF8xMDY2MF8xNjYyNyI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNCAxMS41KSIgZD0iTTAgMGg2OXYyNEgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==" alt="Uber logo" class="foundation-preview_companyLogo__miayx"/><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM3IiBoZWlnaHQ9IjMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTQuNTUuMDY0Yy0xLjI4NC4xMjQtMi44NTIuNDktNC4xMTUuOTYtLjI2LjA5OC0uNTM4LjItLjYxOS4yMy0uOTY2LjM1Ni0yLjQ0NCAxLjE4OC0zLjIwNCAxLjgwNC0uMDguMDY1LS40MjUuMzM4LS43NjUuNjA2LS43OTYuNjI4LTIuMTA3IDEuOTUtMi40MyAyLjQ1LS4xMzguMjEzLS4zODguNTY4LS41NTQuNzg4LS40MTQuNTQ4LTEuMDIyIDEuNTYtMS4wMjIgMS43MDQgMCAuMTA3LjgwMi4xMTcgOS4zNTkuMTE3aDkuMzU5djIuMDNsLS4zODMuNTUyYy0uMjEuMzA0LS42MjEuODcyLS45MTQgMS4yNjFhNTE0LjUxMiA1MTQuNTEyIDAgMDAtMi4zNzQgMy4xODVjLS4wNTcuMDgtLjU5LjgwMi0xLjE4NiAxLjYwMy0uNTk2LjgtMS4xNjMgMS41NzEtMS4yNiAxLjcxMS0uMDk4LjE0LS4yMDQuMjY2LS4yMzUuMjgtLjAzMi4wMTMtLjA1Ny4wNy0uMDU3LjEyNyAwIC4wODggMS4yNDcuMTAzIDguNzMzLjEwM2g4LjczM2wuMDc0LS4zNDZjLjI0LTEuMTIzLjI2Ni0xLjQzOS4yNjYtMy4yMjMgMC00Ljk3LTEuNzk2LTguODQ2LTUuNjkyLTEyLjI4M0MyMy4zMzQgMS4xNCAxOC42MjctLjMzMiAxNC41NS4wNjN6IiBmaWxsPSIjRkNCNDM0Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01MS43IDYuNjk0Yy0uNTE2LjIzNS0uOTY4LjQyNy0xLjAwNC40MjctLjAzNiAwLS40MDkuMTYyLS44MjcuMzZsLS43NjEuMzU4VjI1LjExaDMuNTY4bC4wMDMtMy40MDVjLjAwMi0yLjk1LjAxNi0zLjM4Ni4xMDUtMy4yNjguMDU3LjA3NC4xOTYuMjM4LjMwOS4zNjMuMzc2LjQxNyAyLjgyIDMuMjU5IDMuMDA1IDMuNDkzLjYyNS43OTggMi4xNTEgMi42NSAyLjI0NiAyLjcyNi4xMzcuMTEgNC40NTUuMTM0IDQuNDU1LjAyNSAwLS4xMzUtMS4zMjgtMS43MjYtMi41NTgtMy4wNjYtLjM1LS4zOC0uODI5LS45MzctMS4wNjUtMS4yMzgtLjIzNi0uMy0uNjktLjgyNS0xLjAwOS0xLjE2NS0xLjIzMS0xLjMxNi0yLjAwNC0yLjE5Ni0xLjk4MS0yLjI1OC4wMTItLjAzNi42MzQtLjY5OCAxLjM4MS0xLjQ3Ljc0Ny0uNzc0IDEuNDQ5LTEuNTIxIDEuNTYtMS42NjEuMTEtLjE0LjU1Mi0uNjE2Ljk4LTEuMDU3IDEuMS0xLjEzIDIuMTg2LTIuMzc0IDIuMTQtMi40NDktLjAyLS4wMzUtLjk3OS0uMDYyLTIuMTI5LS4wNjFsLTIuMDg5LjAwMi0uNzkuOTI3Yy0uNDM0LjUxLTEuNjMgMS44NjUtMi42NTcgMy4wMTJsLTEuODcgMi4wODYtLjAzNi01LjE5LS4wMzYtNS4xODgtLjk0LjQyNnptMzEuODkyLS4xOTljLTEuMTc0LjU1LTEuMzE4LjYxNC0xLjQ4LjY2Mi0uMDkyLjAyNy0uNDc3LjE5My0uODU1LjM2OWwtLjY4Ny4zMTl2Mi43NzJoLTIuNDAzdjIuNzY4aDIuNDAzVjI1LjExaDMuNzE0VjEzLjM4NWgxMS4yOTlsLS4xNDQuMmMtLjA3OS4xMS0uNTkyLjc5LTEuMTQgMS41MS0uNTUuNzIyLTEuMTkxIDEuNTc0LTEuNDI3IDEuODk1YTM2Ni40OTQgMzY2LjQ5NCAwIDAxLTIuNzA3IDMuNjM1Yy0uNTkuNzg0LTEuMDc0IDEuNDQ2LTEuMDc0IDEuNDcgMCAuMDI0LS4wODIuMTQyLS4xODIuMjYtLjE3OS4yMTMtLjE4Mi4yMzktLjE4MiAxLjQ4NnYxLjI3bDkuNTU5LS4wMTkgOS41NTktLjAxOC4wMTgtNy4xNTYuMDE5LTcuMTU1aC0zLjcxNXYxMS41OGgtMTEuMTdsLjE4Ny0uMmMuMTAzLS4xMTEuNjgzLS44NzMgMS4yODctMS42OTQuNjA1LS44MjEgMS44MDQtMi40NDMgMi42NjYtMy42MDUuODYyLTEuMTYyIDEuODMtMi40NzIgMi4xNTItMi45MTNsLjU4NC0uOC0uMDItMS4yMzktLjAyLTEuMjM5LTcuNzc0LS4wMTgtNy43NzUtLjAxOVY4LjQzMmMwLTEuNzAyLS4wMi0yLjE4NC0uMDktMi4xOC0uMDUuMDAyLS4zMjEuMTEyLS42MDIuMjQzem0yOS43ODcuMThjLS41Mi4yMzMtMS4zMTUuNTg0LTEuNzY1Ljc4bC0uODIuMzU2VjI1LjExaDMuNjQydi05LjQzMWMwLTUuMTg4LS4wMjUtOS40MzEtLjA1NS05LjQzLS4wMyAwLS40ODEuMTkyLTEuMDAyLjQyNXptNi42MjguMDA0Yy0uNTIxLjIzNS0xLjMxNC41ODYtMS43NjQuNzhsLS44MTcuMzU0LS4wMDIgOC42NS0uMDAzIDguNjUgMS44NC0uMDIgMS44MzgtLjAyLjAxOS05LjQxM2MuMDE1LTcuNTA4IDAtOS40MTItLjA3My05LjQxLS4wNS4wMDItLjUxNy4xOTUtMS4wMzguNDN6bTguOTQgMy42NTJjLTEuMjQ4LjEyLTIuNTg1LjQ3NS0zLjQ2OC45MTlsLS41LjI1Mi4wNDIuMzRjLjAyMy4xODguMDc5LjgzMi4xMjQgMS40MzMuMDQ1LjYwMS4wOTQgMS4xMzIuMTA4IDEuMTguMDE3LjA1My4yMTgtLjA0Mi41MjItLjI0OCAyLjkxNC0xLjk2OCA2LjMwNy0xLjM3IDYuNzEyIDEuMTg0LjA4NC41MzIuMjQyLjQ1LTEuMi42MTgtMi4zNjcuMjc2LTIuNjc3LjM0LTMuNzc2Ljc3Ny0yLjYxOCAxLjA0MS0zLjg0OSAzLjEwOC0zLjI4NSA1LjUxNS40OSAyLjA5MSAxLjg2MSAzLjA2NSA0LjMwMiAzLjA1OCAxLjk0OS0uMDA2IDMuMDQ4LS40NTggMy45MzktMS42MjEuMjc2LS4zNTkuMjM5LS40MDguNC41MzQuMTYuOTMtLjA1MS44MzggMS45MzEuODM4aDEuNzIxbC0uMDUyLS4yNzNjLS4wMjktLjE1LS4wODQtLjQ1NC0uMTI0LS42NzQtLjAzOC0uMjItLjA5NS0yLjQxNi0uMTI1LTQuODgtLjA2NC01LjQxNC0uMDYzLTUuNDEtMS4xNTYtNi45NTctMS4wNzgtMS41MjgtMy4zMzQtMi4yNjQtNi4xMTUtMS45OTV6TS42MDUgMTEuNTM3Yy0uODg0IDIuOTc3LS43OTMgNi43ODguMjMxIDkuNzEuMzg5IDEuMTA5IDEuNTQ2IDMuMzc0IDEuOTEgMy43MzguMDUzLjA1My4yNTEuMzIzLjQ0Mi42MDIgMS42MTMgMi4zNTcgNC43MTYgNC42MjYgNy42MTEgNS41NjQgNy45MzQgMi41NyAxNi4wNTQtLjg0MyAxOS42MzYtOC4yNTQuMjE1LS40NDUuMzkxLS44NjcuMzkyLS45MzcgMC0uMTItLjUzMi0uMTI3LTEwLjE2LS4xMjdIMTAuNTA5di0yLjE4bC4zMjYtLjRjLjU3OC0uNzEgMi4yMjMtMi45MzkgMi4yMjMtMy4wMTIgMC0uMDQuMDU1LS4xMTYuMTIxLS4xNzEuMTQ2LS4xMiAyLjI4LTIuOTQzIDMuNDQ3LTQuNTYuMTIzLS4xNy4yNDItLjM2LjI2Ni0uNDIuMDM3LS4wOTctLjg4NC0uMTA5LTguMDQtLjEwOUguNzcxbC0uMTY2LjU1NnptNjcuNjA4LS40NDhjLTMuMjMxLjU4Ni01LjE3MSAzLjA1OS01LjMxNyA2Ljc3Ny0uMjEyIDUuMzk3IDIuNjczIDguNTQ0IDcuNTUgOC4yMzMgMy41NDItLjIyNiA1LjY5My0yLjIyNCA2LjI5LTUuODQzIDEuMDE3LTYuMTY0LTIuNzUtMTAuMjE1LTguNTIzLTkuMTY3em0yLjYzNiAyLjg0NWMuNDk4LjEzNyAxLjAyLjQ5OCAxLjM2NS45NDQuNjM0LjgyIDEuMDAyIDIuNDQyLjkgMy45OC0uMTc2IDIuNy0xLjA1MyA0LjA4My0yLjc2MiA0LjM1Ni0yLjAxLjMyMS0zLjM3Ny0xLjExMy0zLjY5OS0zLjg3OS0uNDM2LTMuNzU2IDEuNDMtNi4xNiA0LjE5NS01LjQwMXptNjEuNzIxIDUuNjMzdjEuNTIxbC0uMzE3LjQyN2MtMS40NDEgMS45NDMtNC4zNTkgMS42Mi00LjQ3OC0uNDk1LS4wOTYtMS43MTEgMS41OTQtMi43ODYgNC42NjgtMi45NjcuMTE3LS4wMDcuMTI3LjExLjEyNyAxLjUxNHoiIGZpbGw9IiMwNDA0MDQiLz48L3N2Zz4=" alt="Kotzilla logo" class="foundation-preview_companyLogo__miayx"/></div><div class="foundation-preview_buttonWrap__r7QM3"><a data-test="button" href="https://kotlinfoundation.org/" type="button" class="_main_d4ewd2_17 _modeRock_d4ewd2_241 _sizeL_d4ewd2_106 _alignIconRight_d4ewd2_81 _light_d4ewd2_59 _withIcon_d4ewd2_144"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M6.27 19.137l8.803-8.804.016.016 3.625 3.625L19 5l-8.9.36 3.56 3.559-8.805 8.804 1.414 1.414z"></path></svg><span><span class="foundation-preview_responsiveHidden__7GjSl">Learn </span><span class="foundation-preview_responsiveCapitalized__80rVj">more</span></span></a></div></div></div></div><div class="index_ctaBlock__uYv5X ktl-cta-block-module_wrapper_U-RIE"><div class="ktl-cta-block-module_layout_J-jWe ktl-layout ktl-layout--center"><h2 class="ktl-cta-block-module_main-title_JbxBG rs-h2 rs-h2_theme_dark">Start using<!-- --> Kotlin today!</h2><div class="ktl-cta-block-module_buttons_ObAIt"><a data-test="button" href="/docs/getting-started.html" type="button" class="_main_d4ewd2_17 _modeRock_d4ewd2_241 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _light_d4ewd2_59">Get started</a></div></div></div></div><footer class="ktl-footer-module_footer_m67Up"><div class="ktl-layout ktl-layout--center"><div class="ktl-footer-module_social-list-area_bS3eE"><div class="rs-text-2 rs-text-2_theme_dark ktl-footer-module_social-list-title_HPzIP">Stay in touch:</div><div class="ktl-social-list-module_social-list_K2Nqu"><a data-test="button" target="_blank" title="Kotlin on GitHub" href="https://github.com/JetBrains/kotlin" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M9.32 20.698a.293.293 0 00.284-.042.31.31 0 00.119-.266v-1.75a3.86 3.86 0 01-1.91 0 1.858 1.858 0 01-1.207-1.234 1.74 1.74 0 00-.805-1.029 1.026 1.026 0 01-.503-.617s.1-.308.604-.206c.502.103.905.515 1.407 1.338a1.924 1.924 0 002.213.514c.002-.244.036-.485.1-.72.06-.245.202-.463.402-.617a3.863 3.863 0 01-3.921-3.497 4.262 4.262 0 01.905-3.6 2.885 2.885 0 01.2-2.469h.101c.842.09 1.642.41 2.313.926a8.086 8.086 0 014.425 0 7.19 7.19 0 012.413-.926 2.996 2.996 0 01.201 2.469 4.434 4.434 0 01.905 3.6 3.784 3.784 0 01-3.921 3.497 1.648 1.648 0 01.502 1.234v3.086a.404.404 0 00.247.382c.05.02.102.03.156.03a9.17 9.17 0 006.435-8.846 9.102 9.102 0 00-9-9.155 9.103 9.103 0 00-9 9.155 9.05 9.05 0 006.336 8.742z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Twitter" href="https://twitter.com/kotlin" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M17.09 4h2.715l-5.93 6.777L20.851 20H15.39l-4.278-5.593L6.216 20H3.5l6.342-7.25L3.15 4h5.601l3.867 5.113L17.091 4zm-.952 14.375h1.504L7.934 5.54H6.32l9.818 12.836z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin Slack" href="https://surveys.jetbrains.com/s3/kotlin-slack-sign-up" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M9.586 6.601h1.9v-1.9a1.837 1.837 0 00-1.9-1.9 1.9 1.9 0 000 3.8zm1.9 7.6v4.7a1.837 1.837 0 01-1.9 1.9 1.9 1.9 0 01-1.9-1.9v-4.7a1.899 1.899 0 011.9-1.9 1.837 1.837 0 011.9 1.9zm-5.864 1.773a1.839 1.839 0 01-.737.127 1.9 1.9 0 010-3.8h1.9v1.9a1.839 1.839 0 01-1.163 1.773zm3.963-4.673h-4.7a1.9 1.9 0 010-3.8h4.7a1.838 1.838 0 011.9 1.9 1.9 1.9 0 01-1.9 1.9zm11.4-1.9a1.967 1.967 0 00-1.9-1.9 1.899 1.899 0 00-1.9 1.9v1.9h1.9a1.9 1.9 0 001.9-1.9zm-5.862 1.773a1.839 1.839 0 01-.738.127 1.9 1.9 0 01-1.9-1.9v-4.7a1.839 1.839 0 011.9-1.9 1.898 1.898 0 011.9 1.9v4.7a1.837 1.837 0 01-1.162 1.773zm-.738 9.628a1.839 1.839 0 001.9-1.9 1.9 1.9 0 00-1.9-1.9h-1.9v1.9a1.899 1.899 0 001.9 1.9zm4.7-4.7h-4.7a1.9 1.9 0 110-3.8h4.7a1.836 1.836 0 011.9 1.9 1.9 1.9 0 01-1.9 1.9z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Reddit" href="https://www.reddit.com/r/Kotlin/" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M21.422 9.543a2.206 2.206 0 00-3.079-.03 10.914 10.914 0 00-5.877-1.87l1.007-4.708 3.27.7a1.564 1.564 0 003.128-.071 1.56 1.56 0 00-2.965-.683l-3.649-.773a.376.376 0 00-.397.16.343.343 0 00-.052.145l-1.115 5.248c-2.13.026-4.204.676-5.967 1.87A2.195 2.195 0 103.3 13.108a3.89 3.89 0 00-.053.665c0 3.378 3.935 6.127 8.788 6.127s8.789-2.732 8.789-6.127c0-.223-.018-.446-.054-.666a2.215 2.215 0 001.294-2.012v-.001a2.191 2.191 0 00-.642-1.551zm-14.42 3.115a1.563 1.563 0 113.127.002 1.563 1.563 0 01-3.126-.002zm8.753 4.151c-1.079 1.078-3.127 1.15-3.72 1.15-.612 0-2.66-.09-3.72-1.15a.4.4 0 010-.574.395.395 0 01.287-.122.393.393 0 01.288.122c.912.657 2.022.98 3.145.916a4.86 4.86 0 003.145-.917.405.405 0 01.576 0 .44.44 0 010 .575zm-.287-2.57a1.564 1.564 0 111.564-1.563 1.577 1.577 0 01-1.564 1.563z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Stack Overflow" href="https://stackoverflow.com/questions/tagged/kotlin" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M15.642 15.56l-8.16-1.705.346-1.64 8.159 1.705-.345 1.64zm.474-2.072L8.562 9.97l.69-1.533 7.555 3.54-.69 1.511zm.95-1.9l-6.41-5.33 1.057-1.274 6.41 5.331-1.057 1.274zM13.461 3.3l1.339-.993L19.764 9l-1.338.993L13.461 3.3zm2.18 14.354H7.31v-1.662h8.332v1.662zm1.684-3.324v5.008H5.647V14.33H3.985V21h15.002v-6.67h-1.662z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on YouTube" href="https://www.youtube.com/channel/UCP7uiEZIqci43m22KDl0sNw" type="button" class="_main_d4ewd2_17 _modeClear_d4ewd2_478 _sizeL_d4ewd2_106 _alignIconLeft_d4ewd2_77 _dark_d4ewd2_62 _withIcon_d4ewd2_144 _withoutText_d4ewd2_138 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_1lgbkjk_3 _sizeM_1lgbkjk_17 _icon_d4ewd2_569"><path d="M3.917 17.765a2.94 2.94 0 001.98.82c1.437.146 6.107.191 6.107.191s3.775-.006 6.289-.199a2.486 2.486 0 001.799-.812c.386-.568.63-1.22.714-1.901.112-1.03.172-2.065.18-3.101v-1.454a30.817 30.817 0 00-.18-3.1 4.32 4.32 0 00-.714-1.903 2.473 2.473 0 00-1.8-.81c-2.513-.195-6.284-.195-6.284-.195H12s-3.77 0-6.284.195a2.476 2.476 0 00-1.799.81 4.318 4.318 0 00-.714 1.903 30.782 30.782 0 00-.18 3.1v1.454c.008 1.036.068 2.07.18 3.1a4.31 4.31 0 00.714 1.902zM9.761 8.67l5.615 3.369-5.615 3.369V8.67z"></path></svg></a></div></div><nav><ul class="ktl-nav-list-module_nav-list_-k4np"><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/docs/contribute.html" title="Contributing to Kotlin" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Contributing to Kotlin</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/docs/releases.html" title="Releases" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Releases</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/assets/kotlin-media-kit.pdf" title="Press Kit" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Press Kit</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/docs/security.html" title="Security" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Security</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://blog.jetbrains.com/kotlin/" title="Blog" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Blog</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://youtrack.jetbrains.com/issues/KT" title="Issue Tracker" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Issue Tracker</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://resources.jetbrains.com/storage/products/kotlin/docs/kotlin_logos.zip" title="Brand assets" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Brand assets</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://www.jetbrains.com/careers/jobs/#team=Kotlin" title="Careers" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Careers</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://www.jetbrainsmerchandise.com/brand/kotlin.html" title="Kotlin Merch" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Kotlin Merch</a></li><li class="ktl-nav-item-module_nav-item_isoyN rs-text-2 rs-text-2_theme_dark ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="#opt-out" title="Opt-Out" class="rs-link rs-link_hardness_hard rs-link_mode_clear rs-link_theme_dark">Opt-Out</a></li></ul></nav><a href="https://jetbrains.com" target="_blank" class="ktl-footer-module_logo-area_SsNTa ktl-logo-module_link_bNecp" aria-label="jetbrains.com link" rel="noreferrer"><svg width="149" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M43.242 20.293c0 .423-.09.797-.269 1.125a1.86 1.86 0 0 1-.756.762c-.33.18-.698.269-1.12.269H39V25.5h2.54c.955 0 1.812-.214 2.574-.642a4.679 4.679 0 0 0 1.792-1.773c.433-.752.652-1.598.652-2.544V10.509h-3.316v9.784Zm8.928-.911h6.946v-2.804H52.17v-3.181h7.678v-2.888h-10.91v14.987h11.124v-2.888H52.17v-3.226Zm8.932-5.9h4.442v12.01h3.316v-12.01h4.421v-2.973H61.097v2.977l.005-.005Zm23.512 4.5a3.94 3.94 0 0 0-.837-.323c.224-.065.438-.144.638-.244a3.18 3.18 0 0 0 1.29-1.195c.308-.513.467-1.1.467-1.768 0-.761-.209-1.444-.622-2.046-.413-.598-.996-1.066-1.743-1.404-.747-.334-1.603-.503-2.56-.503h-6.656v14.987h6.786c1.006 0 1.902-.174 2.694-.528.787-.353 1.4-.841 1.837-1.473.433-.628.653-1.345.653-2.151 0-.742-.17-1.405-.513-1.992a3.525 3.525 0 0 0-1.43-1.364l-.004.005Zm-6.802-4.959h2.943c.408 0 .767.075 1.08.22.314.144.558.353.732.627.175.269.264.587.264.95 0 .364-.09.708-.264.992a1.726 1.726 0 0 1-.732.652 2.41 2.41 0 0 1-1.08.229h-2.943v-3.675.005Zm5.069 9.067c-.19.284-.458.503-.802.658a2.908 2.908 0 0 1-1.195.229h-3.072v-3.844h3.072c.444 0 .837.084 1.185.249.344.164.618.393.807.692.19.299.289.637.289 1.02 0 .384-.095.712-.284.996Zm14.798-2.654c.831-.398 1.474-.96 1.932-1.683.458-.721.687-1.558.687-2.514 0-.956-.224-1.763-.672-2.48-.448-.716-1.086-1.27-1.907-1.662-.822-.394-1.773-.588-2.858-.588h-6.563v14.987h3.321V20.04h2.161l3.043 5.457h3.789l-3.426-5.86c.17-.06.339-.125.498-.2h-.005Zm-1.076-3.062a1.798 1.798 0 0 1-.791.722c-.344.17-.747.254-1.21.254h-2.988v-4.147h2.988c.463 0 .866.084 1.21.249.343.164.607.408.791.717.185.308.28.677.28 1.095 0 .418-.095.787-.28 1.1v.01ZM106.9 10.51l-5.352 14.987h3.371l1.06-3.306h5.557l1.135 3.306h3.306l-5.482-14.987H106.9Zm-.169 9.171 1.723-5.287.204-.961.204.96 1.842 5.288h-3.973Zm10.347 5.816h3.425V10.51h-3.425v14.987Zm15.51-4.85L126.14 10.51h-3.232v14.987h3.027V15.36l6.414 10.137h3.266V10.51h-3.027v10.137Zm15.763-1.678a4.466 4.466 0 0 0-1.364-1.568 4.95 4.95 0 0 0-2.011-.846l-2.55-.523c-.398-.095-.717-.26-.951-.498a1.228 1.228 0 0 1-.353-.891c0-.324.084-.603.259-.842.169-.239.413-.423.722-.558.308-.134.667-.199 1.075-.199.408 0 .777.07 1.091.21.313.139.557.333.731.587.175.254.264.538.264.861h3.321c-.019-.871-.263-1.643-.722-2.31-.458-.672-1.1-1.195-1.916-1.573-.817-.379-1.753-.568-2.799-.568-1.045 0-1.971.194-2.783.588-.812.393-1.449.936-1.902 1.633-.453.697-.682 1.488-.682 2.38 0 .722.144 1.374.438 1.951a3.954 3.954 0 0 0 1.24 1.45 4.906 4.906 0 0 0 1.862.801l2.699.558c.443.104.791.299 1.05.577.259.28.384.623.384 1.041 0 .334-.095.637-.284.901a1.826 1.826 0 0 1-.792.613c-.338.144-.737.214-1.195.214-.458 0-.891-.08-1.265-.24a1.94 1.94 0 0 1-.866-.686 1.72 1.72 0 0 1-.309-1.021h-3.321c.015.936.264 1.757.757 2.474.488.712 1.16 1.27 2.017 1.668.856.399 1.837.598 2.942.598 1.106 0 2.101-.204 2.958-.612.861-.409 1.528-.971 2.011-1.688.483-.717.722-1.529.722-2.435a4.4 4.4 0 0 0-.488-2.052l.01.005Z" fill="#fff"></path><path d="m10.17 1.83-8.34 8.34A6.252 6.252 0 0 0 0 14.59V29.5A2.5 2.5 0 0 0 2.5 32h14.91a6.26 6.26 0 0 0 4.42-1.83l8.34-8.34A6.252 6.252 0 0 0 32 17.41V2.5A2.5 2.5 0 0 0 29.5 0H14.59a6.26 6.26 0 0 0-4.42 1.83Z" fill="url(#jetbrains-logo_svg__a)"></path><path d="M24 8H4v20h20V8Z" fill="#000"></path><path d="M15 23.5H6.5v2H15v-2Z" fill="#fff"></path><defs><linearGradient id="jetbrains-logo_svg__a" x1="0.425" y1="31.36" x2="31.31" y2="0.905" gradientUnits="userSpaceOnUse"><stop stop-color="#FF9419"></stop><stop offset="0.43" stop-color="#FF021D"></stop><stop offset="0.99" stop-color="#E600FF"></stop></linearGradient></defs></svg></a><div class="rs-text-3 rs-text-3_hardness_hard rs-text-3_theme_dark ktl-footer-module_text-area_flccc"><div>Supported and developed by <a class="rs-link rs-link_hardness_hard rs-link_mode_classic rs-link_theme_dark" href="https://www.jetbrains.com/" target="_blank">JetBrains</a>.</div><div class="ktl-footer-module_copyright_XjtgY">Kotlin™ is protected under the<!-- --> <a class="rs-link rs-link_hardness_hard rs-link_mode_classic rs-link_theme_dark" href="https://kotlinlang.org/foundation/kotlin-foundation.html">Kotlin Foundation</a> <br class="ktl-footer-module_copyrightBreakLine_0hI7E"/>and licensed under the<!-- --> <a class="rs-link rs-link_hardness_hard rs-link_mode_classic rs-link_theme_dark" target="_blank" href="https://github.com/JetBrains/kotlin-web-site/blob/master/LICENSE" rel="noreferrer">Apache 2 license</a>.</div></div></div></footer></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"isDarkTheme":true},"__N_SSG":true},"page":"/","query":{},"buildId":"oZGKW7JJGcqkSD_UxzkHq","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>