CINXE.COM

kotlin-dsl · GitHub Topics · GitHub

<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="true" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-605318cbe3a1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-bd1cb5575fff.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-52a2075571c3.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-bf3988586de0.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-27a437876a92.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-97f0dc959f8f.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-708e3a93215a.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-9217138a8d5b.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-4397d91bdb49.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-225433424a87.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-aaa714e5674d.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-7d4d2344e7ab.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-43ae85d4871b.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-3e72ff5534e0.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/explore-742a7653565b.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dashboard-0de2bd46c6d8.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/discussions-dae9ae1a46a6.css" /> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["a11y_quote_reply_fix","contentful_lp_hero_video_cover_image","contentful_lp_optimize_image","copilot_immersive_issue_preview","copilot_new_references_ui","copilot_chat_repo_custom_instructions_preview","copilot_no_floating_button","copilot_topics_as_references","copilot_read_shared_conversation","copilot_duplicate_thread","copilot_buffered_streaming","dotcom_chat_client_side_skills","experimentation_azure_variant_endpoint","failbot_handle_non_errors","fgpat_form_ui_updates","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_o3_mini_streaming","hovercard_accessibility","insert_before_patch","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","marketing_pages_search_explore_provider","primer_react_css_modules_ga","react_data_router_pull_requests","remove_child_patch","sample_network_conn_type","swp_enterprise_contact_form","site_proxima_australia_update","viewscreen_sandbox","issues_react_create_milestone","issues_react_cache_fix_workaround","lifecycle_label_name_updates","copilot_task_oriented_assistive_prompts","issues_react_assignee_warning","issue_types_prevent_private_type_creation","ui_commands_metrics"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-6285490c303b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-46b9f4874d95.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-75968cfb5298.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-f04cb2a9fc8c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-0dbb79f97f8f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-62d275b7ddd9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a90ac05d2469.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-8c52cf4cd0d3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-394f8eb34f19.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-defb5828b162.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-2906d7-2a07a295af40.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-a03ee12d659a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-b6294cf703b7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-947061-e7a6c4a19f98.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-2a55124d5c52.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-768abe60b1f8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-3e000c5d31a9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-87a4ae-583fc95bc1af.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-e429cff6ceb1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-65aa9eb482b4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-01e85cd1be94.js"></script> <title>kotlin-dsl · GitHub Topics · GitHub</title> <meta name="route-pattern" content="/topics/:topic_name(.:format)" data-turbo-transient> <meta name="route-controller" content="topics" data-turbo-transient> <meta name="route-action" content="show" data-turbo-transient> <meta name="current-catalog-service-hash" content="82c569b93da5c18ed649ebd4c2c79437db4611a6a1373e805a3cb001c64130b7"> <meta name="request-id" content="9FEC:EA5C4:A08FA7:B4B608:67DD30BE" data-pjax-transient="true"/><meta name="html-safe-nonce" content="6c4397976c001eb01bc7d1da328a727173a0210800257c765997d58fa6aaec9b" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RkVDOkVBNUM0OkEwOEZBNzpCNEI2MDg6NjdERDMwQkUiLCJ2aXNpdG9yX2lkIjoiMzY4Mjk4NTUwODA0MzgyOTQzOCIsInJlZ2lvbl9lZGdlIjoic291dGhlYXN0YXNpYSIsInJlZ2lvbl9yZW5kZXIiOiJzb3V0aGVhc3Rhc2lhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="9bd09d45da57bb9dbc66065dcec431bb5ccc3c900b52a86aa3adbecd26472977" data-pjax-transient="true"/> <meta name="github-keyboard-shortcuts" content="copilot" data-turbo-transient="true" /> <meta name="selected-link" value="/topics/kotlin-dsl" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /> <meta name="user-login" content=""> <meta name="viewport" content="width=device-width"> <meta name="description" content="GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects."> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/topics/kotlin-dsl" /> <meta property="og:url" content="https://github.com"> <meta property="og:site_name" content="GitHub"> <meta property="og:title" content="Build software better, together"> <meta property="og:description" content="GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects."> <meta property="og:image" content="https://github.githubassets.com/assets/github-logo-55c5b9a1fe52.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1200"> <meta property="og:image" content="https://github.githubassets.com/assets/github-mark-57519b92ca4e.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="620"> <meta property="og:image" content="https://github.githubassets.com/assets/github-octocat-13c86b8b336d.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="620"> <meta property="twitter:site" content="github"> <meta property="twitter:site:id" content="13334762"> <meta property="twitter:creator" content="github"> <meta property="twitter:creator:id" content="13334762"> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:title" content="GitHub"> <meta property="twitter:description" content="GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects."> <meta property="twitter:image" content="https://github.githubassets.com/assets/github-logo-55c5b9a1fe52.png"> <meta property="twitter:image:width" content="1200"> <meta property="twitter:image:height" content="1200"> <meta name="hostname" content="github.com"> <meta name="expected-hostname" content="github.com"> <meta http-equiv="x-pjax-version" content="0b5db5ed4a1686c4ba1c327cba9235660698b183e76372fbfe730080a094c817" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="ef5acc6ec29ecb1a419f52928170e01dbede6e30e51a1e9a34f04b5b699db3f9" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="3c046d4b918199cbb4d255cca63226853d0617dbae6529663229394aa9b0742a" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="65fc15edaab210ce2d1b2f83772a092e9d7deb73f4907fa267e47a985ee11451" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <meta name="turbo-body-classes" content="logged-out env-production page-responsive"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="release" content="84532a7fcc0ba9953d320fc3060aae261666cef4"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials"> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative header-wrapper js-header-wrapper "> <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-e05a7c4c5398.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-8d75451d837a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-f1bca44e0926.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-cf2f2ab8dab4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-62da9f-2df2f32ec596.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-9a233856b02c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-46ae788e9cbd.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-33dfb803e078.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.50398dad705ce9fff192.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false" data-attempted-ssr="false" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-4898d1bf4b51.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-730dca81d0a2.js"></script> <header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark> <h2 class="sr-only">Navigation Menu</h2> <button type="button" class="HeaderMktg-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation"> <span class="d-none">Toggle navigation</span> </button> <div class="d-flex flex-column flex-lg-row flex-items-center px-3 px-md-4 px-lg-5 height-full position-relative z-1"> <div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto"> <div class="flex-1"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target js-nav-padding-recalculate js-header-menu-toggle Button--link Button--medium Button d-lg-none color-fg-inherit p-1"> <span class="Button-content"> <span class="Button-label"><div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div></span> </span> </button> </div> <a class="mr-lg-3 color-fg-inherit flex-order-2 js-prevent-focus-on-mobile-nav" href="/" aria-label="Homepage" data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to go to homepage&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Logomark;ref_loc:Header&quot;}"> <svg height="32" aria-hidden="true" viewBox="0 0 24 24" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> </a> <div class="flex-1 flex-order-2 text-right"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Ftopics%2Fkotlin-dsl" class="HeaderMenu-link HeaderMenu-button d-inline-flex d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit js-prevent-focus-on-mobile-nav" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b1414c32db88336c9cb6dbb00f636c7b674c58ad0379cd4bb50b9b4141f6241e" data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to Sign in&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Sign in;ref_loc:Header&quot;}" > Sign in </a> </div> </div> <div class="HeaderMenu js-header-menu height-fit position-lg-relative d-lg-flex flex-column flex-auto top-0"> <div class="HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0"> <nav class="HeaderMenu-nav" aria-label="Global"> <ul class="d-lg-flex list-style-none"> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Product <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_copilot&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_copilot_link_product_navbar&quot;}" href="https://github.com/features/copilot"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">GitHub Copilot</div> Write better code with AI </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_product_navbar&quot;}" href="https://github.com/features/security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Security</div> Find and fix vulnerabilities </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;actions&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;actions_link_product_navbar&quot;}" href="https://github.com/features/actions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3"> <path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path> </svg> <div> <div class="color-fg-default h4">Actions</div> Automate any workflow </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;codespaces&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;codespaces_link_product_navbar&quot;}" href="https://github.com/features/codespaces"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3"> <path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> <div> <div class="color-fg-default h4">Codespaces</div> Instant dev environments </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;issues&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;issues_link_product_navbar&quot;}" href="https://github.com/features/issues"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3"> <path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path> </svg> <div> <div class="color-fg-default h4">Issues</div> Plan and track work </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_review&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_review_link_product_navbar&quot;}" href="https://github.com/features/code-review"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3"> <path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Review</div> Manage code changes </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;discussions&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;discussions_link_product_navbar&quot;}" href="https://github.com/features/discussions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Discussions</div> Collaborate outside of code </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_search&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_search_link_product_navbar&quot;}" href="https://github.com/features/code-search"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-square color-fg-subtle mr-3"> <path d="M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Search</div> Find more, search less </div> </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="product-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="product-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;all_features&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;all_features_link_product_navbar&quot;}" href="https://github.com/features"> All features </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;documentation&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;documentation_link_product_navbar&quot;}" href="https://docs.github.com"> Documentation <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_skills&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_skills_link_product_navbar&quot;}" href="https://skills.github.com"> GitHub Skills <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;blog&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;blog_link_product_navbar&quot;}" href="https://github.blog"> Blog <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Solutions <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 pb-lg-3 mb-3 mb-lg-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;enterprises&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}" href="https://github.com/enterprise"> Enterprises </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}" href="https://github.com/team"> Small and medium teams </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;startups&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}" href="https://github.com/enterprise/startups"> Startups </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;nonprofits&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}" href="/solutions/industry/nonprofits"> Nonprofits </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devsecops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}" href="/solutions/use-case/devsecops"> DevSecOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}" href="/solutions/use-case/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;ci_cd&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ci_cd_link_solutions_navbar&quot;}" href="/solutions/use-case/ci-cd"> CI/CD </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}" href="/solutions/use-case"> View all use cases </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-industry-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;healthcare&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}" href="/solutions/industry/healthcare"> Healthcare </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;financial_services&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}" href="/solutions/industry/financial-services"> Financial services </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;manufacturing&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}" href="/solutions/industry/manufacturing"> Manufacturing </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;government&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}" href="/solutions/industry/government"> Government </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all_industries&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}" href="/solutions/industry"> View all industries </a></li> </ul> </div> </div> <div class="HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold"> <a href="/solutions"> View all solutions <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon"> <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path> </svg> </a> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Resources <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span> <ul class="list-style-none f5" aria-labelledby="resources-topics-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}" href="/resources/articles/ai"> AI </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devops&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}" href="/resources/articles/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}" href="/resources/articles/security"> Security </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;software_development&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}" href="/resources/articles/software-development"> Software Development </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_link_resources_navbar&quot;}" href="/resources/articles"> View all </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="resources-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;learning_pathways&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;learning_pathways_link_resources_navbar&quot;}" href="https://resources.github.com/learn/pathways"> Learning Pathways <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;events_amp_webinars&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;events_amp_webinars_link_resources_navbar&quot;}" href="https://resources.github.com"> Events &amp; Webinars <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;ebooks_amp_whitepapers&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ebooks_amp_whitepapers_link_resources_navbar&quot;}" href="https://github.com/resources/whitepapers"> Ebooks &amp; Whitepapers </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;customer_stories&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}" href="https://github.com/customer-stories"> Customer Stories </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}" href="https://partner.github.com"> Partners <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;executive_insights&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;executive_insights_link_resources_navbar&quot;}" href="https://github.com/solutions/executive-insights"> Executive Insights </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Open Source <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_sponsors&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}" href="/sponsors"> <div> <div class="color-fg-default h4">GitHub Sponsors</div> Fund open source developers </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;the_readme_project&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;the_readme_project_link_open_source_navbar&quot;}" href="https://github.com/readme"> <div> <div class="color-fg-default h4">The ReadME Project</div> GitHub community articles </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span> <ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;topics&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}" href="https://github.com/topics"> Topics </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;trending&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}" href="https://github.com/trending"> Trending </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;collections&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}" href="https://github.com/collections"> Collections </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Enterprise <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}" href="/enterprise"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-stack color-fg-subtle mr-3"> <path d="M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z"></path><path d="M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path><path d="M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path> </svg> <div> <div class="color-fg-default h4">Enterprise platform</div> AI-powered developer platform </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span> <ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;advanced_security&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;advanced_security_link_enterprise_navbar&quot;}" href="https://github.com/enterprise/advanced-security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Advanced Security</div> Enterprise-grade security features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}" href="/features/copilot/copilot-business"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">Copilot for business</div> Enterprise-grade AI features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;premium_support&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}" href="/premium-support"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Premium Support</div> Enterprise-grade 24/7 support </div> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;global&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_global_navbar&quot;}" href="https://github.com/pricing">Pricing</a> </li> </ul> </nav> <div class="d-flex flex-column flex-lg-row width-full flex-justify-end flex-lg-items-center text-center mt-3 mt-lg-0 text-lg-left ml-lg-3"> <qbsearch-input class="search-input" data-scope="" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="eLGbS20XmBoojBBlsWmxOtOxokVaYwjcPIi2WnZiTHdppGDLBlqHq4vHhUm07fgFtoRcFQ5qYBlVhXRZu_iJcg" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true"> <div class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded" data-action="click:qbsearch-input#searchInputContainerClicked" > <button type="button" class="header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none" data-target="qbsearch-input.inputButton" aria-label="Search or jump to…" aria-haspopup="dialog" placeholder="Search or jump to..." data-hotkey=s,/ autocapitalize="off" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;searchbar&quot;,&quot;context&quot;:&quot;global&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}" data-action="click:qbsearch-input#handleExpand" > <div class="mr-2 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </div> <span class="flex-1" data-target="qbsearch-input.inputButtonText">Search or jump to...</span> <div class="d-flex" data-target="qbsearch-input.hotkeyIndicator"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg> </div> </button> <input type="hidden" name="type" class="js-site-search-type-field"> <div class="Overlay--hidden " data-modal-dialog-overlay> <modal-dialog data-action="close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose" data-target="qbsearch-input.searchSuggestionsDialog" role="dialog" id="search-suggestions-dialog" aria-modal="true" aria-labelledby="search-suggestions-dialog-header" data-view-component="true" class="Overlay Overlay--width-large Overlay--height-auto"> <h1 id="search-suggestions-dialog-header" class="sr-only">Search code, repositories, users, issues, pull requests...</h1> <div class="Overlay-body Overlay-body--paddingNone"> <div data-view-component="true"> <div class="search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container" style="border-radius: 12px;" data-target="qbsearch-input.queryBuilderContainer" hidden > <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="query-builder-test-form" action="" accept-charset="UTF-8" method="get"> <query-builder data-target="qbsearch-input.queryBuilder" id="query-builder-query-builder-test" data-filter-key=":" data-view-component="true" class="QueryBuilder search-query-builder"> <div class="FormControl FormControl--fullWidth"> <label id="query-builder-test-label" for="query-builder-test" class="FormControl-label sr-only"> Search </label> <div class="QueryBuilder-StyledInput width-fit " data-target="query-builder.styledInput" > <span id="query-builder-test-leadingvisual-wrap" class="FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search FormControl-input-leadingVisual"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </span> <div data-target="query-builder.styledInputContainer" class="QueryBuilder-StyledInputContainer"> <div aria-hidden="true" class="QueryBuilder-StyledInputContent" data-target="query-builder.styledInputContent" ></div> <div class="QueryBuilder-InputWrapper"> <div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div> <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-be1a8d15-a97a-4c21-9460-f088d4ac0b23" data-target="query-builder.input" data-action=" input:query-builder#inputChange blur:query-builder#inputBlur keydown:query-builder#inputKeydown focus:query-builder#inputFocus " data-view-component="true" class="FormControl-input QueryBuilder-Input FormControl-medium" /> </div> </div> <span class="sr-only" id="query-builder-test-clear">Clear</span> <button role="button" id="query-builder-test-clear-button" aria-labelledby="query-builder-test-clear query-builder-test-label" data-target="query-builder.clearButton" data-action=" click:query-builder#clear focus:query-builder#clearButtonFocus blur:query-builder#clearButtonBlur " variant="small" hidden="hidden" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium mr-1 px-2 py-0 d-flex flex-items-center rounded-1 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill Button-visual"> <path d="M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z"></path> </svg> </button> </div> <template id="search-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </template> <template id="code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="file-code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-file-code"> <path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path> </svg> </template> <template id="history-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history"> <path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path> </svg> </template> <template id="repo-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </template> <template id="bookmark-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bookmark"> <path d="M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="plus-circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus-circle"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill"> <path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path> </svg> </template> <template id="trash-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash"> <path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path> </svg> </template> <template id="team-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people"> <path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path> </svg> </template> <template id="project-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project"> <path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z"></path> </svg> </template> <template id="pencil-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pencil"> <path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path> </svg> </template> <template id="copilot-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot"> <path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="copilot-error-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot-error"> <path d="M16 11.24c0 .112-.072.274-.21.467L13 9.688V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-.198 0-.388-.009-.571-.029L6.833 5.226a4.01 4.01 0 0 0 .17-.782c.117-.935-.037-1.395-.241-1.614-.193-.206-.637-.413-1.682-.297-.683.076-1.115.231-1.395.415l-1.257-.91c.579-.564 1.413-.877 2.485-.996 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095Zm-5.083-8.707c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Zm2.511 11.074c-1.393.776-3.272 1.428-5.43 1.428-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.18-.455-.241-.963-.252-1.475L.31 4.107A.747.747 0 0 1 0 3.509V3.49a.748.748 0 0 1 .625-.73c.156-.026.306.047.435.139l14.667 10.578a.592.592 0 0 1 .227.264.752.752 0 0 1 .046.249v.022a.75.75 0 0 1-1.19.596Zm-1.367-.991L5.635 7.964a5.128 5.128 0 0 1-.889.073c-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433 1.539 0 3.089-.505 4.063-.934Z"></path> </svg> </template> <template id="workflow-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-workflow"> <path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="book-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> </template> <template id="code-review-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-review"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="codespaces-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-codespaces"> <path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> </template> <template id="comment-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="comment-discussion-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> </template> <template id="organization-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-organization"> <path d="M1.75 16A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 0 0 .25-.25V8.285a.25.25 0 0 0-.111-.208l-1.055-.703a.749.749 0 1 1 .832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0 1 14.25 16h-3.5a.766.766 0 0 1-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 0 1-.75-.75V14h-1v1.25a.75.75 0 0 1-.75.75Zm-.25-1.75c0 .138.112.25.25.25H4v-1.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 .75.75v1.25h2.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM3.75 6h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 3.75A.75.75 0 0 1 3.75 3h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 3.75Zm4 3A.75.75 0 0 1 7.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 7 6.75ZM7.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 9.75A.75.75 0 0 1 3.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 9.75ZM7.75 9h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="rocket-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-rocket"> <path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </template> <template id="shield-check-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield-check"> <path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="heart-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> </template> <template id="server-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-server"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v4c0 .372-.116.717-.314 1 .198.283.314.628.314 1v4a1.75 1.75 0 0 1-1.75 1.75H1.75A1.75 1.75 0 0 1 0 12.75v-4c0-.358.109-.707.314-1a1.739 1.739 0 0 1-.314-1v-4C0 1.784.784 1 1.75 1ZM1.5 2.75v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm.25 5.75a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25ZM7 4.75A.75.75 0 0 1 7.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 7 4.75ZM7.75 10h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM3 4.75A.75.75 0 0 1 3.75 4h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 4.75ZM3.75 10h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="globe-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-globe"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path> </svg> </template> <template id="issue-opened-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </template> <template id="device-mobile-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile"> <path d="M3.75 0h8.5C13.216 0 14 .784 14 1.75v12.5A1.75 1.75 0 0 1 12.25 16h-8.5A1.75 1.75 0 0 1 2 14.25V1.75C2 .784 2.784 0 3.75 0ZM3.5 1.75v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM8 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path> </svg> </template> <template id="package-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package"> <path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"></path> </svg> </template> <template id="credit-card-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-credit-card"> <path d="M10.75 9a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5Z"></path><path d="M0 3.75C0 2.784.784 2 1.75 2h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14H1.75A1.75 1.75 0 0 1 0 12.25ZM14.5 6.5h-13v5.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm0-2.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25V5h13Z"></path> </svg> </template> <template id="play-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </template> <template id="gift-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gift"> <path d="M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z"></path> </svg> </template> <template id="code-square-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="device-desktop-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-desktop"> <path d="M14.25 1c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.752.752 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5C0 1.784.784 1 1.75 1ZM1.75 2.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25ZM9.018 12H6.982a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5Z"></path> </svg> </template> <div class="position-relative"> <ul role="listbox" class="ActionListWrap QueryBuilder-ListWrap" aria-label="Suggestions" data-action=" combobox-commit:query-builder#comboboxCommit mousedown:query-builder#resultsMousedown " data-target="query-builder.resultsList" data-persist-list=false id="query-builder-test-results" ></ul> </div> <div class="FormControl-inlineValidation" id="validation-be1a8d15-a97a-4c21-9460-f088d4ac0b23" hidden="hidden"> <span class="FormControl-inlineValidation--visual"> <svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg> </span> <span></span> </div> </div> <div data-target="query-builder.screenReaderFeedback" aria-live="polite" aria-atomic="true" class="sr-only"></div> </query-builder></form> <div class="d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt"> <a target="_blank" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax" data-view-component="true" class="Link color-fg-accent text-normal ml-2">Search syntax tips</a> <div class="d-flex flex-1"></div> </div> </div> </div> </div> </modal-dialog></div> </div> <div data-action="click:qbsearch-input#retract" class="dark-backdrop position-fixed" hidden data-target="qbsearch-input.darkBackdrop"></div> <div class="color-fg-default"> <dialog-helper> <dialog data-target="qbsearch-input.feedbackDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="feedback-dialog" aria-modal="true" aria-labelledby="feedback-dialog-title" aria-describedby="feedback-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="feedback-dialog-title"> Provide feedback </h1> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="feedback-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="feedback-dialog-title"> <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="ioXgqy25vx1jFSvsofPDuqHru8Dezyq7qC9Dz/ZOPSWIJUkLxfwHLB39RGmPTg3RGhBjdRaeiJeZIdH1Q9U8JQ==" /> <p>We read every piece of feedback, and take your input very seriously.</p> <textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea> <input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox"> <label for="include_email" style="font-weight: normal">Include my email address so I can be contacted</label> </form></div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd"> <button data-close-dialog-id="feedback-dialog" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="code-search-feedback-form" data-action="click:qbsearch-input#submitFeedback" type="submit" data-view-component="true" class="btn-primary btn"> Submit feedback </button> </div> </dialog></dialog-helper> <custom-scopes data-target="qbsearch-input.customScopesManager"> <dialog-helper> <dialog data-target="custom-scopes.customScopesModalDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="custom-scopes-dialog" aria-modal="true" aria-labelledby="custom-scopes-dialog-title" aria-describedby="custom-scopes-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header Overlay-header--divided"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="custom-scopes-dialog-title"> Saved searches </h1> <h2 id="custom-scopes-dialog-description" class="Overlay-description">Use saved searches to filter your results more quickly</h2> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="custom-scopes-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="custom-scopes-dialog-title"> <div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="smGlTfBU05+DtpUnT0gI3z0Axhp/LwjjdNbDc8srRiI6v50JC0l7LEULyEF8vUtyoLiQ/nXqsIoifpJ3/jPgmw==" /> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField"> <div class="form-group"> <label for="custom_scope_name">Name</label> <auto-check src="/search/custom_scopes/check_name" required only-validate-on-blur="false"> <input type="text" name="custom_scope_name" id="custom_scope_name" data-target="custom-scopes.customScopesNameField" class="form-control" autocomplete="off" placeholder="github-ruby" required maxlength="50"> <input type="hidden" data-csrf="true" value="41y3G5Xdc5ZD5tMBhsST8GGuYaM+KwA6FAkrImdtRDUfxjC41Wely4Jiz2S4vzmAUg3LAknfnEPpLgS0fn34eA==" /> </auto-check> </div> <div class="form-group"> <label for="custom_scope_query">Query</label> <input type="text" name="custom_scope_query" id="custom_scope_query" data-target="custom-scopes.customScopesQueryField" class="form-control" autocomplete="off" placeholder="(repo:mona/a OR repo:mona/b) AND lang:python" required maxlength="500"> </div> <p class="text-small color-fg-muted"> To see all available qualifiers, see our <a class="Link--inTextBlock" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax">documentation</a>. </p> </form> </div> <div data-target="custom-scopes.manageCustomScopesForm"> <div data-target="custom-scopes.list"></div> </div> </div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided"> <button data-action="click:custom-scopes#customScopesCancel" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="custom-scopes-dialog-form" data-action="click:custom-scopes#customScopesSubmit" data-target="custom-scopes.customScopesSubmitButton" type="submit" data-view-component="true" class="btn-primary btn"> Create saved search </button> </div> </dialog></dialog-helper> </custom-scopes> </div> </qbsearch-input> <div class="position-relative HeaderMenu-link-wrap d-lg-inline-block"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Ftopics%2Fkotlin-dsl" class="HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded rounded-lg-0 px-2 py-1" style="margin-left: 12px;" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b1414c32db88336c9cb6dbb00f636c7b674c58ad0379cd4bb50b9b4141f6241e" data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to go to homepage&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Sign in;ref_loc:Header&quot;}" > Sign in </a> </div> <a href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2Ftopics%2Fkotlin-dsl&amp;source=header" class="HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b1414c32db88336c9cb6dbb00f636c7b674c58ad0379cd4bb50b9b4141f6241e" data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/topics/kotlin-dsl;ref_cta:Sign up;ref_loc:header logged out&quot;}" > Sign up </a> <button type="button" class="sr-only js-header-menu-focus-trap d-block d-lg-none">Reseting focus</button> </div> </div> </div> </div> </header> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-7aabe375-bece-47ee-af3e-4884692b4e8c" aria-labelledby="tooltip-c5342ed5-e844-4aa8-b4f2-9e8733e368ed" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-c5342ed5-e844-4aa8-b4f2-9e8733e368ed" for="icon-button-7aabe375-bece-47ee-af3e-4884692b4e8c" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container" class="flash-container" data-turbo-replace> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div > <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled data-project-hovercards-enabled > <main> <div class="site-subnav color-bg-default site-subnav-sticky js-sticky" > <nav class="container-lg mx-auto p-responsive" role="navigation" aria-label="Explore navigation"> <div class="d-flex flex-wrap flex-items-center flex-justify-center flex-md-justify-start text-center text-md-left"> <a class="js-selected-navigation-item d-inline-block subnav-primary f5 py-0 py-md-3 mt-2 mt-md-0 mr-0 mr-md-4 no-underline subnav-link" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;NAVIGATION_BAR&quot;,&quot;click_target&quot;:&quot;EXPLORE&quot;,&quot;click_visual_representation&quot;:&quot;CLICK_VISUAL_REPRESENTATION_UNKNOWN&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c1edbd4460ddaab134aff83d678bfebc083d6276d626059a0ab024479cbab088" data-selected-links="/explore /explore/email /explore" href="/explore">Explore</a> <a class="js-selected-navigation-item selected d-inline-block py-2 py-md-3 mr-3 mr-md-4 no-underline subnav-link" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;NAVIGATION_BAR&quot;,&quot;click_target&quot;:&quot;TOPICS&quot;,&quot;click_visual_representation&quot;:&quot;CLICK_VISUAL_REPRESENTATION_UNKNOWN&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="81c3492109bd8f55f73658cbab0e28748d6d337ec21eb594ea6864d94259245a" aria-current="page" data-selected-links="topics_path /topics/kotlin-dsl /topics" href="/topics">Topics</a> <a class="js-selected-navigation-item d-inline-block py-2 py-md-3 mr-3 mr-md-4 no-underline subnav-link" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;NAVIGATION_BAR&quot;,&quot;click_target&quot;:&quot;TRENDING&quot;,&quot;click_visual_representation&quot;:&quot;CLICK_VISUAL_REPRESENTATION_UNKNOWN&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c80851a79901c0935dc496aac0ad9132067e626b4c77b79a476cced11a9f3d08" data-selected-links="/trending /trending/developers /trending/developers /trending /trending" href="/trending">Trending</a> <a class="js-selected-navigation-item d-inline-block py-2 py-md-3 mr-3 mr-md-4 no-underline subnav-link" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;NAVIGATION_BAR&quot;,&quot;click_target&quot;:&quot;COLLECTIONS&quot;,&quot;click_visual_representation&quot;:&quot;CLICK_VISUAL_REPRESENTATION_UNKNOWN&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4122d223e05bc81fe1767c70680b81420d7b0fcb857f4cf68222fabad58288ee" data-selected-links="collections_path /collections/ /collections" href="/collections">Collections</a> <a class="js-selected-navigation-item d-inline-block py-2 py-md-3 mr-3 mr-md-4 no-underline subnav-link" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;NAVIGATION_BAR&quot;,&quot;click_target&quot;:&quot;EVENTS&quot;,&quot;click_visual_representation&quot;:&quot;CLICK_VISUAL_REPRESENTATION_UNKNOWN&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9f37781de66d21f541dad1f10879a84c219ff67663a3102561abb857eb517ca7" data-selected-links="events_path /events?id= /events" href="/events">Events</a> <a class="js-selected-navigation-item d-inline-block py-2 py-md-3 mr-3 mr-md-4 no-underline subnav-link" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;NAVIGATION_BAR&quot;,&quot;click_target&quot;:&quot;GITHUB_SPONSORS&quot;,&quot;click_visual_representation&quot;:&quot;CLICK_VISUAL_REPRESENTATION_UNKNOWN&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3c231bb1f7ad53c38980cc198b5c35e383260ce96da6dcfd7b1f8fa3535a6b25" data-selected-links="sponsors_explore_index_path /sponsors/explore /sponsors/explore" href="/sponsors/explore">GitHub Sponsors</a> </div> </nav> </div> <div> <div class="container-lg p-responsive py-5"> <div class="gutter-md"> <div class="col-lg-9 col-md-8 d-flex flex-items-center mb-3 mb-sm-0"> <div class="d-flex flex-1"> <div class="border color-border-subtle color-bg-accent f4 color-fg-muted text-bold rounded flex-shrink-0 text-center mr-3" style="width: 48px; height: 48; line-height: 48px;" > # </div> <h1 class="h1"> kotlin-dsl </h1> </div> <topic-feeds-toast-trigger data-topic-display-name="kotlin-dsl" data-topic-name="kotlin-dsl"> <!--Add Discover button--> <!--End Add Discover button--> <div data-view-component="true" class="d-inline-block"> <a href="/login?return_to=%2Ftopic.kotlin-dsl" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8723c55af8952431c4aa4d55974f3339c9fa95d3fc8e2d6570f148b4a955bca2" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> </a></div> </topic-feeds-toast-trigger> </div> </div> </div> <div class="topic p-responsive container-lg"> <div class="d-md-flex gutter-md"> <div class="col-md-8 col-lg-9" data-hpc> <h2 class="h3 color-fg-muted"> Here are 520 public repositories matching this topic... </h2> <div class="d-sm-flex"> <details class="details-reset details-overlay mt-2 mr-3 select-menu"> <summary data-view-component="true" class="select-menu-button btn-sm btn"> <i>Language:</i> <span data-menu-button>All</span> </summary> <details-menu class="select-menu-modal position-absolute" style="z-index: 99;"> <div class="select-menu-header"> <span class="select-menu-title">Filter by language</span> </div> <div class="select-menu-list"> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl" aria-checked="true"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> All <span>520</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=kotlin" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> Kotlin <span>468</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=java" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> Java <span>31</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=groovy" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> Groovy <span>4</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=javascript" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> JavaScript <span>3</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=css" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> CSS <span>2</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=html" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> HTML <span>1</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=objective-c" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> Objective-C <span>1</span> </span> </a> <a class="select-menu-item" role="menuitemradio" href="https://github.com/topics/kotlin-dsl?l=typescript" aria-checked="false"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text d-flex flex-justify-between" data-menu-button-text> TypeScript <span>1</span> </span> </a> </div> </details-menu> </details> <details class="details-reset details-overlay select-menu mt-2"> <summary data-view-component="true" class="select-menu-button btn-sm btn"> <i>Sort:</i> <span data-menu-button >Most stars</span> </summary> <details-menu class="select-menu-modal position-absolute" style="z-index: 99;"> <div class="select-menu-header"> <span class="select-menu-title">Sort options</span> </div> <div class="select-menu-list"> <a class="select-menu-item" role="menuitemradio" aria-checked="true" href="/topics/kotlin-dsl?o=desc&amp;s=stars"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text" data-menu-button-text > Most stars </span> </a> <a class="select-menu-item" role="menuitemradio" aria-checked="false" href="/topics/kotlin-dsl?o=asc&amp;s=stars"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text" data-menu-button-text > Fewest stars </span> </a> <a class="select-menu-item" role="menuitemradio" aria-checked="false" href="/topics/kotlin-dsl?o=desc&amp;s=forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text" data-menu-button-text > Most forks </span> </a> <a class="select-menu-item" role="menuitemradio" aria-checked="false" href="/topics/kotlin-dsl?o=asc&amp;s=forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text" data-menu-button-text > Fewest forks </span> </a> <a class="select-menu-item" role="menuitemradio" aria-checked="false" href="/topics/kotlin-dsl?o=desc&amp;s=updated"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text" data-menu-button-text > Recently updated </span> </a> <a class="select-menu-item" role="menuitemradio" aria-checked="false" href="/topics/kotlin-dsl?o=asc&amp;s=updated"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check select-menu-item-icon"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> <span class="select-menu-item-text" data-menu-button-text > Least recently updated </span> </a> </div> </details-menu> </details> </div> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_IMAGE&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:86057409,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c0190edb98a34f73878cc40f4307984db365a7617e67f086ace5b038ed8b7a81" data-turbo="false" style="max-height:275px" href="/arrow-kt/arrow" data-view-component="true" class="overflow-hidden flex-items-center rounded-top-2 Link color-border-muted border-bottom d-flex position-relative"><img loading="lazy" src="https://repository-images.githubusercontent.com/86057409/cfbb1d80-4f3c-11ea-8408-863debec4cd3" alt="arrow" class="d-block width-full" ></a> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:29458023,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a6952d0deb2ddda11b90cb5643c49cd48d312794e56d5503cf9934b196d4bf22" data-turbo="false" href="/arrow-kt" data-view-component="true" class="Link">arrow-kt</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:86057409,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="288d2667f814035ef6bfaf9980a4415b9e7589debbb9c821245e7502a7e4ec34" data-turbo="false" href="/arrow-kt/arrow" data-view-component="true" class="Link text-bold wb-break-word">arrow</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Farrow-kt%2Farrow" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:86057409,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="28115511b02a28ef0fc16c5778cd4595b7e98d1a6dd13e8e1bfde9798ed85880" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="6285 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="6,285" data-view-component="true" class="Counter js-social-count">6.3k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-86057409" aria-current="true" href="/arrow-kt/arrow" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:86057409,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9e9d1237fc89adbdeb083ecd77c477fd6abeab31ccc20d94c5abe124d91e2834" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-86057409" href="/arrow-kt/arrow/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:86057409,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e467a023ce90547e47984b77939eb1167fc9b76b4eee1d9cefb3f4cf019a6134" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-86057409" href="/arrow-kt/arrow/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:86057409,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d728ddac7b6260f3370de053126f5564f04d9a4ec4a4d40ba9d35c379a2a18f8" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="discussions-tab-86057409" href="/arrow-kt/arrow/discussions" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_DISCUSSIONS&quot;,&quot;click_visual_representation&quot;:&quot;DISCUSSIONS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:86057409,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e6b6828be9ed8f59bdbb73df0d3742ffc7cf809aee0be9dc34a3acbfba20577c" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion color-fg-muted"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> Discussions </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >Λrrow - The perfect companion for your Kotlin journey - Inspired by functional, data-oriented and concurrent programming</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:2347,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="91a56c7271e556c71b1bc3c42538959bd08be9df97ac005ae84d3a9a43db485c" title="Topic: monads" href="/topics/monads" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">monads</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9821,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dea3b386d90fe2eec170e6534f3a5437c3a6bb57ac213de78f0e46b508109ea6" title="Topic: functional-programming" href="/topics/functional-programming" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">functional-programming</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12814,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="585786fee359306e6ae6d269432b2c7f7dcf9840f63ca52e69dd2573d1097736" title="Topic: arrow" href="/topics/arrow" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">arrow</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21610,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b656669a56112c6b8220dda6e2ea813ea3c429818cd8e205de898a8f8e34daca" title="Topic: kotlin-library" href="/topics/kotlin-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:75188,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0fc8afdeae269cec128e7aa41bc23c6a59bb0afb8f128d701b65f37b67b1fefd" title="Topic: optics" href="/topics/optics" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">optics</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:109673,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ce2cffa14597037cb489a944ec40613e941a88b0acfba87d04ba52d7b76504b4" title="Topic: polymorphism" href="/topics/polymorphism" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">polymorphism</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:127106,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7693c49d8b08cb6e1a8aa800ced77ce551e16eec9fc698c77da169d4a802b515" title="Topic: typeclasses" href="/topics/typeclasses" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">typeclasses</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:196454,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07cbbfcacd33f1d8919ec99cda06cc8775071c5f43fb37cc11d79a3d24bcf4d2" title="Topic: hacktoberfest" href="/topics/hacktoberfest" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hacktoberfest</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:358673,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8aa6e5d50d657e66615334212a440d6b27b96d5f5a44812a9b0b865a7835189e" title="Topic: functional-data-structure" href="/topics/functional-data-structure" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">functional-data-structure</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:363699,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="27670c2d7ab8d695d34cab5a7482c0476a5c58c387ab4fcd7f949afe1b51043d" title="Topic: continuations" href="/topics/continuations" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">continuations</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:404509,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c2eb174a8f8a46eebd7c7dbc24a2062586593ab8aa0dfad87c3296054bcc26ff" title="Topic: for-comprehension" href="/topics/for-comprehension" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">for-comprehension</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:430526,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="563d55c4b0e032743253c5c5421162232ab215f2463621da0aa473f076720630" title="Topic: typed-lambda-calculus" href="/topics/typed-lambda-calculus" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">typed-lambda-calculus</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:507484,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7346f6135a348e82521e8a85725d710f380474c4155b9dda3dff91328ab84799" title="Topic: fp-types" href="/topics/fp-types" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">fp-types</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:894290,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="944a3eeeadbc95d98e298bd78934427eca27198483c29cd4fb8d48455305120d" title="Topic: delimited-continuations" href="/topics/delimited-continuations" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">delimited-continuations</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1361287,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6734e4d60ff1a236851eb47772a6a2d98c5a14f3e91c1bb0976646a4bb8a5c1d" title="Topic: kotlin-libraries" href="/topics/kotlin-libraries" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-libraries</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-21T09:13:48Z" class="no-wrap">Mar 21, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23430080,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4299ecea8a3dec0b082d6cfd3ac52535febfcc8200cc4662f34ddbf667469025" data-turbo="false" href="/princekin-f" data-view-component="true" class="Link">princekin-f</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:200805227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eae846470aa16ce0487a6ca76e4bc3cd0c131a1e68daec1ecdf1ecbef40264af" data-turbo="false" href="/princekin-f/EasyFloat" data-view-component="true" class="Link text-bold wb-break-word">EasyFloat</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fprincekin-f%2FEasyFloat" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:200805227,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2b858f78d6a49bb29813996b29eab2cb192df749c1c21c3307f15e6edaa0246b" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="3430 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="3,430" data-view-component="true" class="Counter js-social-count">3.4k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-200805227" aria-current="true" href="/princekin-f/EasyFloat" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:200805227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3355681ed094bd150b325605dfec23863601d3cc07567c3001c385c13247e65f" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-200805227" href="/princekin-f/EasyFloat/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:200805227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="958fa2f46ba2c4f9abb5b02d542ab970818a28ccf0e7152df3abc138d261fe93" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-200805227" href="/princekin-f/EasyFloat/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:200805227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6e8c0e3957390e41e5d28f4536c2d0887be68ed75193d8fa82d645d9d5558fa4" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >🔥 EasyFloat:浮窗从未如此简单(Android可拖拽悬浮窗口,支持页面过滤、自定义动画,可设置单页面浮窗、前台浮窗、全局浮窗,浮窗权限按需自动申请...)</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13001,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="00d8eecd1f5723dc2e5ad2c1ec620ea5b66ea80cf811cbe51b9f01047ba8043e" title="Topic: floating" href="/topics/floating" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">floating</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:338307,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="483ef542d447fa409577aa5e0c8fb922b9b70b670918aff388f58f9476dde6f0" title="Topic: floating-window" href="/topics/floating-window" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">floating-window</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:880279,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="23d3c63cbce42ddc8e922adb97c23561bda6be255801de63e84d430269a4ee1e" title="Topic: floating-view" href="/topics/floating-view" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">floating-view</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1084967,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2d9c7b015d0085d37c920f9f8d6e390e4ee1bef5a6d18bf3c8783dcfe6ba0dca" title="Topic: kotlin-dsl-java" href="/topics/kotlin-dsl-java" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl-java</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2022-11-25T06:20:31Z" class="no-wrap">Nov 25, 2022</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:6975237,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="16de4cd3258f88d88de7f551d3e2961e94201fc1b8dd39cae0512b64f1840c78" data-turbo="false" href="/LouisCAD" data-view-component="true" class="Link">LouisCAD</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65558914,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="aa78df7de228ff6ed356f029d9222fe1fc803efdf5d57d7d4d5b8c9e06b9388e" data-turbo="false" href="/LouisCAD/Splitties" data-view-component="true" class="Link text-bold wb-break-word">Splitties</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/LouisCAD" aria-label="Sponsor @LouisCAD" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;LouisCAD&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d6640a4ddda02b3e9220b8119fc51d1afa3730ff1e3bad3862bbebf33dcb52e1" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2FLouisCAD%2FSplitties" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:65558914,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d8409b934507d04241e1b6826506ce297124c9c1d7cbeaceba961048ed042bdf" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="2556 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="2,556" data-view-component="true" class="Counter js-social-count">2.6k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-65558914" aria-current="true" href="/LouisCAD/Splitties" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65558914,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="851c4b9da8e24a26d2bd653a335e1902268e3b333741f6de1e50596b1a25ff1b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-65558914" href="/LouisCAD/Splitties/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65558914,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d2a40ff90567acef9cb7245a3ecc44aa7c9305ff707d3c37125547f0e2537cda" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-65558914" href="/LouisCAD/Splitties/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65558914,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="615c66a5f34552a7a6a34daa0e894fdc88bfa57f98b0dc1764ba429b5b34e4fd" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="discussions-tab-65558914" href="/LouisCAD/Splitties/discussions" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_DISCUSSIONS&quot;,&quot;click_visual_representation&quot;:&quot;DISCUSSIONS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65558914,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0d6c83f6f452b4cfc32375f4879db11e52db94dc081f66b5fbc970c22e924a88" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion color-fg-muted"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> Discussions </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >A collection of hand-crafted extensions for your Kotlin projects.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:199,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e34904eb7c42ed2bf369d2281e80c6562191f205ca9f9ad82639d2747143d66e" title="Topic: macos" href="/topics/macos" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">macos</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:331,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2fe9c20a3ff982aa620d778ad0791df2f5a5b2d992210e09745a8560f7ab8d07" title="Topic: lightweight" href="/topics/lightweight" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">lightweight</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:743,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="08ecc02d13391eb42b33e07f97b7091adcc3f8912ccd4a51242c11a18858f125" title="Topic: ios" href="/topics/ios" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">ios</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9322,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="62167476a659ce3c27956674b0568b4243be22129c32839fd397315f59940a6e" title="Topic: material-design" href="/topics/material-design" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">material-design</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12298,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2addc1bac68bd414c9cf129ef0db1669dbbaf428af6f9a0e00632f44215acc1c" title="Topic: watchos" href="/topics/watchos" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">watchos</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21602,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="97f65d528176188c4717540e1683a7a28b132d23e2a7d470db09abd09ebc1377" title="Topic: kotlin-android" href="/topics/kotlin-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21608,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="831767ccaa45feae1999ddc4b74d7ea0c71f0c4778350eb36552f61048684c9c" title="Topic: kotlin-extensions" href="/topics/kotlin-extensions" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-extensions</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21610,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b656669a56112c6b8220dda6e2ea813ea3c429818cd8e205de898a8f8e34daca" title="Topic: kotlin-library" href="/topics/kotlin-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21893,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3445a6cc5d39953347012b513d118a0bbf66ca25f5cf44110ff70ed34ecd7850" title="Topic: android-library" href="/topics/android-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:265057,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eab8a3b227a2788ad723542338b3f992f6876d44fb6023ad19b92ade527520d1" title="Topic: kotlin-coroutines" href="/topics/kotlin-coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:385810,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e4a5454e4475b996cfd5bb4afbb91edeaa4b1327310eb1c723adbc4f3ff229dc" title="Topic: ios-library" href="/topics/ios-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">ios-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:443696,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6c63bc2b2b586f83cc11e40d229396254035bb3baea6d6950c647c73828fc2bc" title="Topic: kotlin-native" href="/topics/kotlin-native" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-native</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:660970,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cc1cdc29f7ad64a923e416ac0135bbd6534d35493405d23b4f7174b2e3a24f73" title="Topic: kotlin-multiplatform" href="/topics/kotlin-multiplatform" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-multiplatform</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2024-05-29T22:10:21Z" class="no-wrap">May 29, 2024</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9562689,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3546e736c31904580e88131d0ece26b90365272b15508e1e492b37ec5902c46a" data-turbo="false" href="/crazyqiang" data-view-component="true" class="Link">crazyqiang</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:76628259,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7bc210197966d4a0209433d1cce94e2575f3e603f3564b58c51c05c36521a983" data-turbo="false" href="/crazyqiang/AndroidStudy" data-view-component="true" class="Link text-bold wb-break-word">AndroidStudy</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fcrazyqiang%2FAndroidStudy" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:76628259,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4345a6e0f90dac7ae0db2fdd92eec44336e7700a4856310c13db004cf686380e" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="2158 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="2,158" data-view-component="true" class="Counter js-social-count">2.2k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-76628259" aria-current="true" href="/crazyqiang/AndroidStudy" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:76628259,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1cf28eaa931028bf04705ecc0a2d49969ad2d38d72c4bed6af108121d44bfc5c" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-76628259" href="/crazyqiang/AndroidStudy/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:76628259,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9edddac6e3869cff9b09fbd26136bc430fd91fe11e68240921ee017fb8ed5579" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-76628259" href="/crazyqiang/AndroidStudy/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:76628259,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="13fa45deb150d2dccfbc2fbe6bec223ceecbd52388e23f72909fb8664f3bca0d" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >🔥 Android学习知识点总结 Jetpack、MVVM、MVI、Kotlin、ViewPager2、JUC多线程等,欢迎star!</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9864,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5369c09f5e9ea49a14b2ebb89d4ed10cb5485268db76b916486f725a612607a0" title="Topic: gradle" href="/topics/gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:17169,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7d0e4e0f0f7ceb80f67c7b2fbb75f7e0a2214f1dc1d2d5db50776889bb4da1e3" title="Topic: thread" href="/topics/thread" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">thread</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:17266,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9399e4b4eef978da4601fb4edd6b2916fe3cb1838ccffd3f7a99c5bc68e3093c" title="Topic: mvvm" href="/topics/mvvm" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mvvm</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:17652,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07f444fad4b36c259ebaaf45e4fac2a0aaea8eddfadb139235ab51f09ffdb62e" title="Topic: dialog" href="/topics/dialog" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dialog</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21004,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c75f1c706b5f5e89e5717e78c598231f7aeb91d064a6569e2afbbee633ecd19e" title="Topic: banner" href="/topics/banner" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">banner</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23943,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="feaa71df4670e135df7393138ef79d9e852410c02e364db6c253c7a7ccb08d8c" title="Topic: jetpack" href="/topics/jetpack" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:243733,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="247b47e03fce5ae053484f8c196fa25d90a7ffe2a804d937645f645dfc9ab993" title="Topic: dialogfragment" href="/topics/dialogfragment" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dialogfragment</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:437278,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5eeb3f30c9b2d77add5a2c527a4564c9dbd540bb60510e84e9929f6b31fa2367" title="Topic: handlerthread" href="/topics/handlerthread" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">handlerthread</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1279828,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b5b9b05de4bb8aa99c8424f5cc24ed9fc84a869ccf8ba9647a594583e0f659cb" title="Topic: jetpack-viewmodel" href="/topics/jetpack-viewmodel" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-viewmodel</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1279829,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="102bafc5746bde80732ec1f118402086c29b25af38b3d26e8f5a2d32e46627d0" title="Topic: jetpack-livedata" href="/topics/jetpack-livedata" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-livedata</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1342866,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5dd920fea3be09206d42b9a1e719233b82000f4ea3bf03ec88b057729a431dd4" title="Topic: jetpack-datastore" href="/topics/jetpack-datastore" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-datastore</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1380826,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0b9f6d1a02a14e417b8d07b1fd9df6b8cbb9f470d3ed6715bb5e34e248cb8c9a" title="Topic: jetpack-mvvm" href="/topics/jetpack-mvvm" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-mvvm</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1608761,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6673679c1bb2d8409c25d366590c258dcb4aa077923acd6f439bef580909ac7b" title="Topic: jetpack-lifecycle" href="/topics/jetpack-lifecycle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-lifecycle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1608762,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="17d42aeb13aa4e4aff490b67d9b81f54f1f6f0a47b2ae88a0db85ccba1d0e343" title="Topic: juc-multithread" href="/topics/juc-multithread" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">juc-multithread</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1655319,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ab8f9a300ef57663fe6b501daab781aa3a12492a72fb7b70268d2b1821331c20" title="Topic: androidx-viewpager2" href="/topics/androidx-viewpager2" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">androidx-viewpager2</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-01-06T16:29:39Z" class="no-wrap">Jan 6, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:3001957,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5290dae2710ef9a823d0ae549c70bd1e3ce04485f1be9f0bd5352e9307410ade" data-turbo="false" href="/cortinico" data-view-component="true" class="Link">cortinico</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:250921807,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d4d9c2f8881de4a8a5d489a327292b6ad3656de183f93f55c748433c76aa1309" data-turbo="false" href="/cortinico/kotlin-android-template" data-view-component="true" class="Link text-bold wb-break-word">kotlin-android-template</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/cortinico" aria-label="Sponsor @cortinico" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;cortinico&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6f5e6dca6373c1c865ad46f4589721e557d9fa3f5158cb0c9aced26891f81c55" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fcortinico%2Fkotlin-android-template" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:250921807,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9012642a4dd0b08a1fd6dc273aa65e5019e8c566a9c30b27a42d91228962483e" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="1797 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="1,797" data-view-component="true" class="Counter js-social-count">1.8k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-250921807" aria-current="true" href="/cortinico/kotlin-android-template" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:250921807,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9415b746de1c0af2de2f889930c239d0fc756bc34424bc3784abda9c33d9407f" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-250921807" href="/cortinico/kotlin-android-template/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:250921807,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a45bd70bcfb1ca39211a7b6e209b58a013679426a84b9b99bbe4a0605dfec7fd" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-250921807" href="/cortinico/kotlin-android-template/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:250921807,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5ddbca9ad32743dc1e42cc03522851b4cf0a01a40daaeb1fd745dcd83489f1c7" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >Android + Kotlin + Github Actions + ktlint + Detekt + Gradle Kotlin DSL + buildSrc = ❤️</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:451,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="fc3a378f6c944678d5cf89d0313dce6bcf2da32e0458d998d2c94b7c72783247" title="Topic: template" href="/topics/template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9864,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5369c09f5e9ea49a14b2ebb89d4ed10cb5485268db76b916486f725a612607a0" title="Topic: gradle" href="/topics/gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21893,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3445a6cc5d39953347012b513d118a0bbf66ca25f5cf44110ff70ed34ecd7850" title="Topic: android-library" href="/topics/android-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:94890,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ecdd7a0c200d729c7e6c45848dd0c83f7d0873a07c0722367a5b523f090c3464" title="Topic: android-app" href="/topics/android-app" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-app</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:180426,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b22ed5cbb53e77bae4bb7e8bada303cc4bc9237b9225b8e08b7307818be9eedf" title="Topic: detekt" href="/topics/detekt" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">detekt</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:188186,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="90f11d82a5c0d96eee72f3bac480a0e6604ece0c4ecd0a043797b93c3374ed14" title="Topic: android-template" href="/topics/android-template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:196454,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07cbbfcacd33f1d8919ec99cda06cc8775071c5f43fb37cc11d79a3d24bcf4d2" title="Topic: hacktoberfest" href="/topics/hacktoberfest" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hacktoberfest</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:364724,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7aaa384e2856c2945e615d86b2cfab3018456208cd05e6b85f09f7ead8bbede1" title="Topic: gradle-android-plugin" href="/topics/gradle-android-plugin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-android-plugin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:369269,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0d81fee5205c51c20c4e5c2028fb1f956dd61b6316b4f183b87e952117cdcd1e" title="Topic: github-templates" href="/topics/github-templates" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-templates</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:373171,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1e279770b6a7f917ce257d7e9485e1de0b3d714468629e2a38940ca93672ade2" title="Topic: kotlin-template" href="/topics/kotlin-template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:406784,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="41c9514a3858852d1b17370a76de427a29608cc5e5cf549ebcaf39efc5647910" title="Topic: ktlint" href="/topics/ktlint" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">ktlint</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:511491,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="37f50c60db2f7ac8a5c7cbb836fa7a1417b87400f40c84b0fdb0399b0d15e9bc" title="Topic: gradle-kotlin-dsl" href="/topics/gradle-kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:586475,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="94422a18a4af37232c135b2636ab669c2c731ca58a30617ab542767fae40fa36" title="Topic: maven-central" href="/topics/maven-central" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">maven-central</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:873440,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5bff8987828a73909a95dc663d7679b457f293b2c0192894bd931f2078981fcc" title="Topic: github-actions" href="/topics/github-actions" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-actions</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1029251,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="605f81dbc2b888b638fd2455bbdab6d57fcd100948b6fa19ff7a732f2fe09e64" title="Topic: github-template" href="/topics/github-template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1030644,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="804978df8853ed3de95d5e6086cd8d9665617228337e466b0b00afe516436eee" title="Topic: template-repository" href="/topics/template-repository" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">template-repository</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1453063,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c911ad1656ff3ec3b2cb1f56bfb3165acf8c3698740bd33c626b61a6e2a678b9" title="Topic: kotlin-android-template" href="/topics/kotlin-android-template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-android-template</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-20T15:30:54Z" class="no-wrap">Mar 20, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_IMAGE&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:62418645,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="654dd8187045b1e127e0b9521b5b8a39ec8fdea7d39af0a2c60aa82248aa587b" data-turbo="false" style="max-height:275px" href="/libktx/ktx" data-view-component="true" class="overflow-hidden flex-items-center rounded-top-2 Link color-border-muted border-bottom d-flex position-relative"><img loading="lazy" src="https://repository-images.githubusercontent.com/62418645/f933ae80-c8f4-11e9-9e32-c64badcb7014" alt="ktx" class="d-block width-full" ></a> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:27509130,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e59d1d60154cf3d0317cce2da300a3ae2e9f8c9d4ab2be36a828e57eb40b3299" data-turbo="false" href="/libktx" data-view-component="true" class="Link">libktx</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:62418645,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="996b9b23fa14e9f9d3a64f5b20cae62691449feba7660cbce2de03e53cc649bd" data-turbo="false" href="/libktx/ktx" data-view-component="true" class="Link text-bold wb-break-word">ktx</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Flibktx%2Fktx" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:62418645,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="66f7eb5f9cee56ae7a952a76f91bcf11d8b1d89ad3b9a31aedac1893e4669027" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="1389 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="1,389" data-view-component="true" class="Counter js-social-count">1.4k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-62418645" aria-current="true" href="/libktx/ktx" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:62418645,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bd31af74d41f50f67b7cb10755b2c7200ca7f54510c36880b8357bf3980f61a3" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-62418645" href="/libktx/ktx/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:62418645,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4e6680ea0e22faea4b450811762ecd1c4f883d4631e440de348f334fcfe29bf9" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-62418645" href="/libktx/ktx/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:62418645,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8e2fcbc44351db16e854022fb5b808f261dcb5d192f66958f7ff161639d6164d" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="discussions-tab-62418645" href="/libktx/ktx/discussions" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_DISCUSSIONS&quot;,&quot;click_visual_representation&quot;:&quot;DISCUSSIONS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:62418645,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="92e2098ff5d3084d18e2de1585e0fff1e8d0d14d263927c3b88341af124e7d81" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion color-fg-muted"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> Discussions </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >Kotlin extensions for the libGDX game framework</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:776,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="63ce7420db8256ef564b575db97d9fe3e91221546c127b6ca5a8f03622a18183" title="Topic: gamedev" href="/topics/gamedev" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gamedev</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9691,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="be624dea7020606e3270f24c525d79a58a86e30c3bb82992628e2f07f7f96068" title="Topic: game-engine" href="/topics/game-engine" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">game-engine</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12079,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8e170ae4aabb44a36b5eead6b12125551665eecb8af3d63c0ebbdcd758dfe37a" title="Topic: async" href="/topics/async" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">async</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12901,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="49b10d1f716cb6e439d94eca19cf4859845be1e80fecdeb9512a181beb4c065f" title="Topic: graphics" href="/topics/graphics" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">graphics</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12957,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1c6e2e8b528b5a074cafc5be5cd728ca6f69ab36ba9d4d05f6aa28f8d08f8492" title="Topic: libgdx" href="/topics/libgdx" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">libgdx</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:17135,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6ffc030ee60cb8399321006643ff70e0ddeee7cd5508be39d101082ea71b1883" title="Topic: game-development" href="/topics/game-development" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">game-development</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21608,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="831767ccaa45feae1999ddc4b74d7ea0c71f0c4778350eb36552f61048684c9c" title="Topic: kotlin-extensions" href="/topics/kotlin-extensions" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-extensions</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21610,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b656669a56112c6b8220dda6e2ea813ea3c429818cd8e205de898a8f8e34daca" title="Topic: kotlin-library" href="/topics/kotlin-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:74669,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="18d69754f48392e397e256e6414f6638e8076573b3ed0997c19a16f3b10e00f9" title="Topic: scene2d" href="/topics/scene2d" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">scene2d</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:84320,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b70bfa444a1a74e70cc515f9454287f4bb135ee54a003ef3874f36022429efa6" title="Topic: box2d" href="/topics/box2d" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">box2d</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:189908,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="16ca904cd54154c5520101e161098d53cfbd20a5263f2814b4df06f51db7ebb7" title="Topic: ktx" href="/topics/ktx" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">ktx</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:196454,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07cbbfcacd33f1d8919ec99cda06cc8775071c5f43fb37cc11d79a3d24bcf4d2" title="Topic: hacktoberfest" href="/topics/hacktoberfest" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hacktoberfest</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:265057,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eab8a3b227a2788ad723542338b3f992f6876d44fb6023ad19b92ade527520d1" title="Topic: kotlin-coroutines" href="/topics/kotlin-coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:463648,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="825c2892e79b12c92b3f4e670a36b4163341db602ffc81fef50ad1e0b4929696" title="Topic: kotlin-utilities" href="/topics/kotlin-utilities" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-utilities</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:480202,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="93cd7f32de696609b8e182e076c00d0b53d68291723ed1e9ea13d7033f7b6198" title="Topic: libgdx-api" href="/topics/libgdx-api" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">libgdx-api</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:688625,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e5c08c7b0e504f4166bfd116947b201fcf1255fba286625433b963848a6ef268" title="Topic: libktx" href="/topics/libktx" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">libktx</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-13T13:30:24Z" class="no-wrap">Mar 13, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1483254,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3a42f63b61e99b802d07e96cd48aed2624141d7f0a1570769bab0d329da53892" data-turbo="false" href="/mybatis" data-view-component="true" class="Link">mybatis</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:73488326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a11bac5ec696fdb182215b2bcec73b219b48db6207d8b361cf57ae605404d56e" data-turbo="false" href="/mybatis/mybatis-dynamic-sql" data-view-component="true" class="Link text-bold wb-break-word">mybatis-dynamic-sql</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fmybatis%2Fmybatis-dynamic-sql" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:73488326,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9a7b0d58087003fcb82ff85a58d0a8df5d86735b071caf9f235b1c62070b6d8e" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="1114 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="1,114" data-view-component="true" class="Counter js-social-count">1.1k</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-73488326" aria-current="true" href="/mybatis/mybatis-dynamic-sql" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:73488326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="59b186be2299e1651149212ca0f6b115a0838e0c0bebf4291537b634d229143c" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-73488326" href="/mybatis/mybatis-dynamic-sql/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:73488326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b046a9f2d793e372c940ffc2a956a1b69d81c73377130efbba3fd2113509dd42" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-73488326" href="/mybatis/mybatis-dynamic-sql/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:73488326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5d1dc6e84fa6a4564c91c6678c4d2b6f3ce2e815b50747f18f5685d1220909d1" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="discussions-tab-73488326" href="/mybatis/mybatis-dynamic-sql/discussions" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_DISCUSSIONS&quot;,&quot;click_visual_representation&quot;:&quot;DISCUSSIONS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:73488326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d42bcd3c7ecc86d03ead9b8e207484bddf6ed1b21381564f886d11c90fbaf6b8" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion color-fg-muted"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> Discussions </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >SQL DSL (Domain Specific Language) for Kotlin and Java. Supports rendering for MyBatis or Spring JDBC Templates</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9821,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dea3b386d90fe2eec170e6534f3a5437c3a6bb57ac213de78f0e46b508109ea6" title="Topic: functional-programming" href="/topics/functional-programming" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">functional-programming</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65623,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2d425b6414e63ecb8dac0b55a2946b483533318a95e531e599dd24fd32218644" title="Topic: java-8" href="/topics/java-8" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">java-8</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:93524,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7316820665b68deedf0ecc6dc8ccf3c23af80e0a5a93706e63b9a728961f26aa" title="Topic: mybatis" href="/topics/mybatis" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mybatis</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:93941,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a6c0bf6860573e8b533b406e4f85bccd039611878a5d6b9c29d2173cf9525bae" title="Topic: sql-generation" href="/topics/sql-generation" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">sql-generation</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:398514,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d02aefcbf3e472e5588b419f8eaed72e7bdd51d2ebda956a1dd882d9a16fee62" title="Topic: sql-dsl" href="/topics/sql-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">sql-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:405238,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="56696297415c4d47e008c21770c7e93c96b11baa8984521935ff3d9807801d93" title="Topic: mybatis3" href="/topics/mybatis3" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mybatis3</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:409442,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="14dc166ad04da2127e0b9279dc9cd0a17cdb3bacc608d0c4b67484dbf2b82ce2" title="Topic: spring-jdbctemplate" href="/topics/spring-jdbctemplate" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">spring-jdbctemplate</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1151174,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ad78d8ef722116e6e459b7803c7ee0938ea2a3dc380dba9bd9a254205e72e4cf" title="Topic: sql-generator" href="/topics/sql-generator" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">sql-generator</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-20T19:26:01Z" class="no-wrap">Mar 20, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #b07219"></span> <span itemprop="programmingLanguage">Java</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:2296754,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="710bda30248d8f972697c5b29a1b15331a47d93c9f65207bc77ed3d370281dd4" data-turbo="false" href="/Drjacky" data-view-component="true" class="Link">Drjacky</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:256785326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8fdd1ec27e54f7e0603e973624ac8f332b7adf73b9bfab035bfc24ec92585aa6" data-turbo="false" href="/Drjacky/MVVMTemplate" data-view-component="true" class="Link text-bold wb-break-word">MVVMTemplate</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/Drjacky" aria-label="Sponsor @Drjacky" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;Drjacky&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1678f6cfddcb3f4bf9a5b5d0fb722f8de748ad31b5cf3e240c32d35be21c4dbd" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2FDrjacky%2FMVVMTemplate" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:256785326,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6073ce86b33b256537bfa4d6cd30d833c03b9607460a8f3f7c469daafeb03463" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="849 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="849" data-view-component="true" class="Counter js-social-count">849</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-256785326" aria-current="true" href="/Drjacky/MVVMTemplate" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:256785326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f13f709678f0e06401266d9f4bcf2cccfb9816a2eebb2a0f7c3317c7cbf988cf" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-256785326" href="/Drjacky/MVVMTemplate/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:256785326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2fe99a3f974684e50284075ece2c1bf80e29a5404d20a5d1e94f7b88f000f1bf" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-256785326" href="/Drjacky/MVVMTemplate/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:256785326,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a459878f8dabb32f00fee580139d199258ed41b1a9a4de68b76dffbeeaa9603a" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >An Android Template with MVVM and Clean Architecture</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:366,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2215a4a627c7e6cefb43db7c04b67ba8dde7d6a378d35af9442d1ff2ce5ba4da" title="Topic: flow" href="/topics/flow" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">flow</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9864,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5369c09f5e9ea49a14b2ebb89d4ed10cb5485268db76b916486f725a612607a0" title="Topic: gradle" href="/topics/gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:17266,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9399e4b4eef978da4601fb4edd6b2916fe3cb1838ccffd3f7a99c5bc68e3093c" title="Topic: mvvm" href="/topics/mvvm" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mvvm</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23911,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2404349114c3c6a2a3ee1d139bb44c0024a6210dc409bbbcb9323bce6116ba17" title="Topic: clean-architecture" href="/topics/clean-architecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">clean-architecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:65435,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="fc3064f565f17a7aacfdb10ee281c9505a57dfab1115846a247a39d10b4f665e" title="Topic: rxjava2" href="/topics/rxjava2" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">rxjava2</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105866,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="de317cf94c202b9e4df197afb587828230adc37a01b4aafa437440f8b3e9fef6" title="Topic: template-project" href="/topics/template-project" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">template-project</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:118642,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e99bc2940746c79759d200d37f9ba756c215f0b44d239898f95d1dd68c1e9ec7" title="Topic: compose" href="/topics/compose" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">compose</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:151299,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="18d4303179c3824151f1b1bef783e3d25d829a8be7de2f562bcb5528912e15c8" title="Topic: cleanarchitecture" href="/topics/cleanarchitecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">cleanarchitecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:188186,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="90f11d82a5c0d96eee72f3bac480a0e6604ece0c4ecd0a043797b93c3374ed14" title="Topic: android-template" href="/topics/android-template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:311570,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="976d60a6ed0bba2a2aa1bb0ad76256b7ff560c1251b4f7ee9a3fb5f80cd1cb7a" title="Topic: coroutine" href="/topics/coroutine" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutine</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:335521,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="48500adb44233d19011357ef43d2250019573b10da267199b1cf2571e95fa034" title="Topic: coroutines-android" href="/topics/coroutines-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines-android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:449531,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="22e9c66b9d54dd0aa8f2b909ea0001f84dfac3b027b02e604623828ad8cd8462" title="Topic: pagination-component" href="/topics/pagination-component" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">pagination-component</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:828249,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="03f21f9b8bf3759fdbe9f09167bc9b8b1f0d05042637ea12ed24ecd23cda06bb" title="Topic: navigation-component" href="/topics/navigation-component" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">navigation-component</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1011787,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="325898ab2131680323db9a3007b1d6689196b73a33b05fa361cbc746b8b681dd" title="Topic: jetpack-compose" href="/topics/jetpack-compose" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-compose</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1282428,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1b08e824fbd3b7d8b5936fa205c02899f10e9d261fd30d2457e409ad40ccef33" title="Topic: hilt" href="/topics/hilt" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hilt</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-15T11:06:52Z" class="no-wrap">Mar 15, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_IMAGE&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:165720614,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="317b6985884f86e0c276b8a4b40ad549d67548d92b73297911b91d9da227abf1" data-turbo="false" style="max-height:275px" href="/skrapeit/skrape.it" data-view-component="true" class="overflow-hidden flex-items-center rounded-top-2 Link color-border-muted border-bottom d-flex position-relative"><img loading="lazy" src="https://repository-images.githubusercontent.com/165720614/8339d580-eea9-11e9-97cf-427d5aa1c2f8" alt="skrape.it" class="d-block width-full" ></a> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:46688980,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2b3d04b829b667a338af95677b9ec8576c3c9cbe65ce07cebe69d1f3c2251979" data-turbo="false" href="/skrapeit" data-view-component="true" class="Link">skrapeit</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:165720614,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a7de3baa3429ea1c23acac53d3458f841a3e1855590bf62350348105a3015410" data-turbo="false" href="/skrapeit/skrape.it" data-view-component="true" class="Link text-bold wb-break-word">skrape.it</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/skrapeit" aria-label="Sponsor @skrapeit" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;skrapeit&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="df07ca9dde2ea99592b08a5c63709e735e88ab833d10ada4ff4bfa6ace5f7814" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fskrapeit%2Fskrape.it" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:165720614,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b83e91267bed24e7de685712c28488fbf0bebf1af8763b5c0cf7021299dedf7b" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="833 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="833" data-view-component="true" class="Counter js-social-count">833</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-165720614" aria-current="true" href="/skrapeit/skrape.it" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:165720614,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6c041489a3de0b21553c4032374af7a413e621b79ea67e27e73cb94f05560471" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-165720614" href="/skrapeit/skrape.it/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:165720614,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="595a5cfeac78646b1f8a5b5300c93e92afb8a935b9fccfc411f133d490cdb128" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-165720614" href="/skrapeit/skrape.it/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:165720614,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="021cb06f8915af79a15f9a7347ffbfc570c4ba19fcc6c2ccc06c4e95d5f1cc38" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="discussions-tab-165720614" href="/skrapeit/skrape.it/discussions" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_DISCUSSIONS&quot;,&quot;click_visual_representation&quot;:&quot;DISCUSSIONS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:165720614,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="098f372167a5fe8255acdea1e724f21f012494ae9fd0708daf9a9655f54af0ba" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion color-fg-muted"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> Discussions </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server &amp; client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:183,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5f3c58e6479e5f47492e5f03058874ccc5af6dd49d2f5955d2b28885221c7c26" title="Topic: testing" href="/topics/testing" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">testing</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:2123,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9a434cca5b2e12c223c71f90a2d77dba19c1454cc7b394729d930a11c66d6bb2" title="Topic: crawler" href="/topics/crawler" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">crawler</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:2291,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="04fd03a840f11b6445935113676c73c5e2a2b41bd88b18908824a23355b59fb8" title="Topic: scraper" href="/topics/scraper" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">scraper</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:8925,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5e10c5a3d7d8ed2bae496fb47ab6fe9fdf7c6b166adb6d29727fa9fe55118dea" title="Topic: parse" href="/topics/parse" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">parse</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9756,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f5f4b9beed56b8ec41f91868a370b5c6fda6078835a97415c2177b523ba114ff" title="Topic: dom" href="/topics/dom" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dom</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13546,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0492f70138540e3deca4a2e4a4e9b5ba7250c70793389281d7c426ded3845630" title="Topic: integration-testing" href="/topics/integration-testing" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">integration-testing</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:22617,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d1259e0d4f863e3b799adff9248aa61aa26f1491f536baa8941fbea8611b5029" title="Topic: test-automation" href="/topics/test-automation" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">test-automation</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:34580,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7379247f4cc0b447cc512a8051e7b175929cb975dd90ec3d9e3908cc30f3038e" title="Topic: jsoup" href="/topics/jsoup" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jsoup</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:39225,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e80719b3ffca64f76082d7915b2a9774498f48775217a98a1077046a2810a51c" title="Topic: html-parser" href="/topics/html-parser" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">html-parser</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:196454,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07cbbfcacd33f1d8919ec99cda06cc8775071c5f43fb37cc11d79a3d24bcf4d2" title="Topic: hacktoberfest" href="/topics/hacktoberfest" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hacktoberfest</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:361380,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5aab13e5d6c97db92e62d5b5854f9ae549ba21d4766670753e89f10f51c52664" title="Topic: system-testing" href="/topics/system-testing" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">system-testing</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:960712,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bee508876ea86b850fd24946268103021e8b6d6dbdbac6d99c49ba788c569325" title="Topic: skrape" href="/topics/skrape" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">skrape</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-01-24T18:18:50Z" class="no-wrap">Jan 24, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:513566,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a38c73cde7abd7d9a410d2c5985d7bedfbf47cd0eca38804d716aa57174c4007" data-turbo="false" href="/gmazzo" data-view-component="true" class="Link">gmazzo</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:172272573,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="36e3d9c21428a912296401a0f42889976bc65cdd72f35da227eddd7610f1aba9" data-turbo="false" href="/gmazzo/gradle-buildconfig-plugin" data-view-component="true" class="Link text-bold wb-break-word">gradle-buildconfig-plugin</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/gmazzo" aria-label="Sponsor @gmazzo" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;gmazzo&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7ae85c1b48d66f8b857ff04b1b31796562c6565255b8757326c786f7c2365c47" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fgmazzo%2Fgradle-buildconfig-plugin" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:172272573,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="08fc33f2043110ceea1358c6f76a6bc6e3f7fc7b9cc2031558c9a952bcb51583" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="719 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="719" data-view-component="true" class="Counter js-social-count">719</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-172272573" aria-current="true" href="/gmazzo/gradle-buildconfig-plugin" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:172272573,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d9e0616829f0b6408ab9313708099a1bd9e88096c672ea8d2e8b3aa6dd670c47" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-172272573" href="/gmazzo/gradle-buildconfig-plugin/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:172272573,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="972058b4072715087340895ae14a2e285b33ebf31aa21f711840815e56a99986" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-172272573" href="/gmazzo/gradle-buildconfig-plugin/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:172272573,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="95e240e0e9514b6857183740c12994f622fc192d9491e34c69af8b8c385f7147" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >A plugin for generating BuildConstants for any kind of Gradle projects: Java, Kotlin, Groovy, etc. Designed for KTS scripts.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:160,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="09247514382ce58b2aee0aee28e903082c37575e166b89eabffbececf154525d" title="Topic: java" href="/topics/java" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">java</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9864,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5369c09f5e9ea49a14b2ebb89d4ed10cb5485268db76b916486f725a612607a0" title="Topic: gradle" href="/topics/gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23470,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7e270d3150be3b37e4c2b5b40120b092b0ca6ed7e6aa2573604fc872eacfd0c7" title="Topic: gradle-plugin" href="/topics/gradle-plugin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-plugin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:427858,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f7b5ccbb12e54ddea2a0bdd17f6366617d5291fe67d5174693789a0a47f965c3" title="Topic: kotlin-js" href="/topics/kotlin-js" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-js</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:511491,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="37f50c60db2f7ac8a5c7cbb836fa7a1417b87400f40c84b0fdb0399b0d15e9bc" title="Topic: gradle-kotlin-dsl" href="/topics/gradle-kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:577822,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d2101ad32467e63ce39e60fd37bd6edd5d21d878fd312afedfee12289fb74f2f" title="Topic: kts" href="/topics/kts" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kts</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:660970,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cc1cdc29f7ad64a923e416ac0135bbd6534d35493405d23b4f7174b2e3a24f73" title="Topic: kotlin-multiplatform" href="/topics/kotlin-multiplatform" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-multiplatform</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:709841,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="49be3bc3ce1d91ecb2d45bb78a6da1c0e9f87fdc00d0fdca0e6da0bc1b6dbd86" title="Topic: buildconfig" href="/topics/buildconfig" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">buildconfig</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-14T12:30:08Z" class="no-wrap">Mar 14, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:5719389,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c1fbc25f1409028543966c84e1f0629647cf158385bd68046a053fa9d5eb37e9" data-turbo="false" href="/nuhkoca" data-view-component="true" class="Link">nuhkoca</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193651227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c49f52c13a2856106b496a63ec370138ab34896f0536d74110d45734e37c8d16" data-turbo="false" href="/nuhkoca/kotlin-modular-tdd-coroutines-mvvm" data-view-component="true" class="Link text-bold wb-break-word">kotlin-modular-tdd-coroutines-mvvm</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fnuhkoca%2Fkotlin-modular-tdd-coroutines-mvvm" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:193651227,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cfb6813950979664b49b3231067f740307cdcf65bf0ebe19c1a1125e966fa42f" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="517 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="517" data-view-component="true" class="Counter js-social-count">517</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-193651227" aria-current="true" href="/nuhkoca/kotlin-modular-tdd-coroutines-mvvm" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193651227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7b430c8aed2a5081e87321ec76c2dde7ccca32f9f2c0a67b3662568f565774e9" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-193651227" href="/nuhkoca/kotlin-modular-tdd-coroutines-mvvm/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193651227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d817abe425e2d4bf5157b713e738a8983efc4555ca5dca964ad1fe7879733382" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-193651227" href="/nuhkoca/kotlin-modular-tdd-coroutines-mvvm/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193651227,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c89f620bd5350bcd3e006f768af5e5483ee7d0ea54d4a6cf53e9aa9246f23402" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >A sample Kotlin app which was built with modular structure, Kotlin DSL, Kotlin Coroutines, TDD and MVVM patterns.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:75,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="66cce5a982b411e4c8c600d0c625356da7c104f3e28e3870029812931eb63560" title="Topic: lint" href="/topics/lint" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">lint</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:2300,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a334370fda10b23868f82467383fe8be92eb8d6d1e8a60b8b46d2ad1c641e1e4" title="Topic: circleci" href="/topics/circleci" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">circleci</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9713,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9cafcc00c872a38a384370d5bc9c54614f737d30596616a05cb3c284452119a9" title="Topic: tdd" href="/topics/tdd" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">tdd</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13502,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a7161d755ec5bbc61c6e71b5ac11b726315202746b8f0440bdd60ea651059f5e" title="Topic: architecture" href="/topics/architecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">architecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23911,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2404349114c3c6a2a3ee1d139bb44c0024a6210dc409bbbcb9323bce6116ba17" title="Topic: clean-architecture" href="/topics/clean-architecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">clean-architecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:44933,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="84879b099395b550129cd586720ed3f9ef224f37af547215498c252088ec4707" title="Topic: dagger2" href="/topics/dagger2" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dagger2</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:50481,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d5e1d6fcc5ac75e343c818ebb14769ddb79c3817b6ba9415d54b7eef87bac5dc" title="Topic: glide" href="/topics/glide" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">glide</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:74720,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="833db68c5efb4395e9ef02b3313488dc16d64e8aede25e376518ae48602f21f2" title="Topic: retrofit2" href="/topics/retrofit2" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">retrofit2</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:95298,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="043eed12df68a3b41be96c8780c779e86ad9b4130057845cd10b970863b7b5a2" title="Topic: mvvm-pattern" href="/topics/mvvm-pattern" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mvvm-pattern</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:163628,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dcf07de4e2d9bea3c008dad511a5a05893c7a1a7adaeab0ee991a45b0bb680a6" title="Topic: mvvm-architecture" href="/topics/mvvm-architecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mvvm-architecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:180426,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b22ed5cbb53e77bae4bb7e8bada303cc4bc9237b9225b8e08b7307818be9eedf" title="Topic: detekt" href="/topics/detekt" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">detekt</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:184353,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1842ca4b6ace0cec39df2272b142885581a65decde60b0a1fc5b9ed9a7caa3a3" title="Topic: databinding" href="/topics/databinding" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">databinding</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:357889,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8d679e32df14f2ba699d41de137631c92e2ed2d70e273ecf7fffceee9f81f9f5" title="Topic: solid-principles" href="/topics/solid-principles" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">solid-principles</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:364876,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="de589019f95340df0e368132625ec0840303fac584f827a4f40c9da13f695a94" title="Topic: modularization" href="/topics/modularization" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">modularization</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:406784,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="41c9514a3858852d1b17370a76de427a29608cc5e5cf549ebcaf39efc5647910" title="Topic: ktlint" href="/topics/ktlint" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">ktlint</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:468690,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="caaee261a0d61e2e7ddc64ff8d952db1f456ba454941ff1fbe77a04ee5869d6a" title="Topic: staticcodeanalysis" href="/topics/staticcodeanalysis" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">staticcodeanalysis</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:784034,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e1b424673a76e4dea0b4967f81905b080fba449e051ea5a37689e04d5153a2b7" title="Topic: mockk" href="/topics/mockk" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mockk</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-20T09:05:45Z" class="no-wrap">Mar 20, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:3001957,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5290dae2710ef9a823d0ae549c70bd1e3ce04485f1be9f0bd5352e9307410ade" data-turbo="false" href="/cortinico" data-view-component="true" class="Link">cortinico</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:255118772,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c7f2405f6fe2a130b4732cf0f33a88a028d01c52b70bd1a41cc9d28d2842e556" data-turbo="false" href="/cortinico/kotlin-gradle-plugin-template" data-view-component="true" class="Link text-bold wb-break-word">kotlin-gradle-plugin-template</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/cortinico" aria-label="Sponsor @cortinico" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;cortinico&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6f5e6dca6373c1c865ad46f4589721e557d9fa3f5158cb0c9aced26891f81c55" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fcortinico%2Fkotlin-gradle-plugin-template" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:255118772,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="96ac1b7afd1b643e1ac2b040f07310c8c7b0d7fe19f46cbc85a5e1d597615d56" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="490 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="490" data-view-component="true" class="Counter js-social-count">490</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-255118772" aria-current="true" href="/cortinico/kotlin-gradle-plugin-template" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:255118772,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1240d0e925a5e6c05275182d5f77c0c6bd05ae2bdfcd0e7737b4df195c5965cf" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-255118772" href="/cortinico/kotlin-gradle-plugin-template/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:255118772,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2f123a2d4e734084940e226ca216743fbb932ef1e3e6e80b1ac3dad64b12482b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-255118772" href="/cortinico/kotlin-gradle-plugin-template/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:255118772,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b2ddf8e4cac46b789c47f7dc1ede86e5e531acd6e6509fbe285c0c8f22f5bf4b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >🐘 A template to let you started with custom Gradle Plugins + Kotlin in a few seconds</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:451,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="fc3a378f6c944678d5cf89d0313dce6bcf2da32e0458d998d2c94b7c72783247" title="Topic: template" href="/topics/template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9864,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5369c09f5e9ea49a14b2ebb89d4ed10cb5485268db76b916486f725a612607a0" title="Topic: gradle" href="/topics/gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13811,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1254dbdb92d55876326eaf12df53b37b551c77842d6ea64e70eb84d3ae43e111" title="Topic: templates" href="/topics/templates" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">templates</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23470,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7e270d3150be3b37e4c2b5b40120b092b0ca6ed7e6aa2573604fc872eacfd0c7" title="Topic: gradle-plugin" href="/topics/gradle-plugin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-plugin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:196454,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07cbbfcacd33f1d8919ec99cda06cc8775071c5f43fb37cc11d79a3d24bcf4d2" title="Topic: hacktoberfest" href="/topics/hacktoberfest" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hacktoberfest</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:369269,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0d81fee5205c51c20c4e5c2028fb1f956dd61b6316b4f183b87e952117cdcd1e" title="Topic: github-templates" href="/topics/github-templates" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-templates</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:508465,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0b9dfcef46da456f147fbd8101e4ea7498c7f9bfe55886c4946d48d87ebbed79" title="Topic: gradle-composite" href="/topics/gradle-composite" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-composite</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:567458,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f41808d3ca7c2523100797a4863a339bd104c03aca392a0b5a07e6b2171760fb" title="Topic: gradle-plugin-kotlin" href="/topics/gradle-plugin-kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-plugin-kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:697685,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24fa33d2e8362b988f596fb38ab708b6f0133f71a13c961235bad1720913eb46" title="Topic: kotlin-gradle" href="/topics/kotlin-gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:873440,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5bff8987828a73909a95dc663d7679b457f293b2c0192894bd931f2078981fcc" title="Topic: github-actions" href="/topics/github-actions" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-actions</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:883983,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a8d2a16cf15b251a1719c1c4eae2aae19080c40e356eb7f09c9675fa58daddcd" title="Topic: gradle-plugin-development" href="/topics/gradle-plugin-development" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-plugin-development</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:954924,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d141544202d908f00303a83ebf9045de1532dc56b26b2d69ec6df485475afa95" title="Topic: gradle-compositebuild" href="/topics/gradle-compositebuild" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-compositebuild</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1029251,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="605f81dbc2b888b638fd2455bbdab6d57fcd100948b6fa19ff7a732f2fe09e64" title="Topic: github-template" href="/topics/github-template" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-template</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1062892,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dee6a1ff8797ab3c9b403537b7f515aad543ff5a2fc976c82dc2a9d8b355c962" title="Topic: gradle-plugins" href="/topics/gradle-plugins" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-plugins</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1183859,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="13be2f40592362e473fb389d3ed4e4c240f8763f7d451720ff594f969ae13914" title="Topic: github-actions-gradle" href="/topics/github-actions-gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">github-actions-gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1236417,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="96c5fa3984509d69bfc96a9ca0bc70d44cca6004ebc554011b2685bd10f1dd94" title="Topic: gradle-portal" href="/topics/gradle-portal" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-portal</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-20T11:44:33Z" class="no-wrap">Mar 20, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:24237865,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7bcc56773d4bbf5fbc44b9d48c6d08e27da4896f0dfc633f2175f83c4a889ef8" data-turbo="false" href="/skydoves" data-view-component="true" class="Link">skydoves</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193119682,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="46f7d16e0a3b7d776de979e497addf9fc8260e32eb4073c3c358b7ee5e185070" data-turbo="false" href="/skydoves/Only" data-view-component="true" class="Link text-bold wb-break-word">Only</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/skydoves" aria-label="Sponsor @skydoves" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;skydoves&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e55289dd3db636033de706d77b55553867e786e6823fec3cd7aab753105ebc60" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fskydoves%2FOnly" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:193119682,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="85956ee516e08227560dfaf4ac5323a69fb733e2785fe1d0bd965465853d995a" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="482 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="482" data-view-component="true" class="Counter js-social-count">482</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-193119682" aria-current="true" href="/skydoves/Only" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193119682,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3bd055a3f7943ccfc195be7ed3c87c75d4bd3849786a9e53ba00dcbdd9b8ef55" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-193119682" href="/skydoves/Only/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193119682,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0e88de3a76e54f8ab15ec150e3a81787eea6fdafa9a450553b2f119f988b21ed" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-193119682" href="/skydoves/Only/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:193119682,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="580e49d49ed8a81c863e6e8b2837520d6e5e3eb2c5b80768440884d178fb8ffe" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >💐 An easy way to persist and run code block only as many times as necessary on Android.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12838,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b4457098ac6d4f64f85bd130e876f2ad5a408b6f684ce807e32ea7af27d27a41" title="Topic: dsl" href="/topics/dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:14040,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4cce96018ff4f43302c8fd0bf6684d6508b660ecadfaa31bb0df5e625ceb5009" title="Topic: persistence" href="/topics/persistence" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">persistence</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:177651,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c603c68b3c56a96946286db7eb89c1d9251c0c28e41e80d33ebdd0d91d74546d" title="Topic: only" href="/topics/only" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">only</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:192668,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="32af107670f1c204fb2aadaf9e44693315f756e1fcb7172b2d799c02a1cf289b" title="Topic: preference" href="/topics/preference" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">preference</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:862114,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dc608cbe005abd8ab5d617b28464dc054637e220e25eed348a6d0288e9f38710" title="Topic: skydoves" href="/topics/skydoves" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">skydoves</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:876468,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="95ea1bf1cc6c0e9650b2897bb8860879d2ff415ab8dd5c8e771f1ce052fc3925" title="Topic: onlyonce" href="/topics/onlyonce" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">onlyonce</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2021-02-05T15:55:22Z" class="no-wrap">Feb 5, 2021</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_IMAGE&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:141764280,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7fe29cbd752f39cadc3256a9b8d47f2e1053fab6d6e75879bea2253be856655e" data-turbo="false" style="max-height:275px" href="/rybalkinsd/kohttp" data-view-component="true" class="overflow-hidden flex-items-center rounded-top-2 Link color-border-muted border-bottom d-flex position-relative"><img loading="lazy" src="https://repository-images.githubusercontent.com/141764280/12771480-a7f9-11e9-8a41-4a1280106f8a" alt="kohttp" class="d-block width-full" ></a> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:710546,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9c2ea7b7679c680d8cef4dc3badc579f028a3976d87e2cb02b29a98496a29b81" data-turbo="false" href="/rybalkinsd" data-view-component="true" class="Link">rybalkinsd</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:141764280,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d27131eff6a65ef76beb8cb744a85be2e2b55d224b0ed4937a99e59e16140e04" data-turbo="false" href="/rybalkinsd/kohttp" data-view-component="true" class="Link text-bold wb-break-word">kohttp</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Frybalkinsd%2Fkohttp" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:141764280,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="553b9bd3654813527717ca77b89d480477891dfc5dc5dc07c50d337229f834a2" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="480 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="480" data-view-component="true" class="Counter js-social-count">480</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-141764280" aria-current="true" href="/rybalkinsd/kohttp" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:141764280,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4b4dc5911531078a9106c70e3f49ca376223d4c5cfde8f08debc72133ebb7091" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-141764280" href="/rybalkinsd/kohttp/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:141764280,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cc6630a3624078d5cc44bab2d3161957f0a682e8e07a88dffdd357d790c35503" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-141764280" href="/rybalkinsd/kohttp/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:141764280,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0c768412eb16970519874993e65eacda510bb5caac356d779e3990855eac603a" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >Kotlin DSL http client</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9150,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="643fd1eeccf377eae4f377d1f50e269df752b2816fbf999d7b68042a4281a3b7" title="Topic: networking" href="/topics/networking" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">networking</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12838,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b4457098ac6d4f64f85bd130e876f2ad5a408b6f684ce807e32ea7af27d27a41" title="Topic: dsl" href="/topics/dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21025,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="45e5db20db3cc7a0a0379c73c66e9270560b43d22b9186caf4f392a48a332a96" title="Topic: http-client" href="/topics/http-client" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">http-client</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:537234,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6ee8b9ca1e1953d5ffb60761b117fc4118c5073b5eca7dcdb9e5a99eeee6b50d" title="Topic: http-dsl" href="/topics/http-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">http-dsl</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2021-04-22T15:29:29Z" class="no-wrap">Apr 22, 2021</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_IMAGE&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:192096771,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="18fc3525c3d6532fd42a19414501a491310d4669be2821c5bd3c90e4c9af0ab4" data-turbo="false" style="max-height:275px" href="/dotanuki-labs/norris" data-view-component="true" class="overflow-hidden flex-items-center rounded-top-2 Link color-border-muted border-bottom d-flex position-relative"><img loading="lazy" src="https://repository-images.githubusercontent.com/192096771/fbe46b4e-553f-459c-81ce-9c2b316a5fa0" alt="norris" class="d-block width-full" ></a> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:47199894,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6157c02a41b80ee48ccdfa76e0fbdf2bca1427ad266e32efa5a2a2480a275c1a" data-turbo="false" href="/dotanuki-labs" data-view-component="true" class="Link">dotanuki-labs</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:192096771,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7f493f0f4298bf53ac9a34766ceb3ba275cac1fe96c797800c76449d2c474c9d" data-turbo="false" href="/dotanuki-labs/norris" data-view-component="true" class="Link text-bold wb-break-word">norris</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fdotanuki-labs%2Fnorris" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:192096771,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4ed96247f6e0b8f62febd9775ac80fe697c9473936e985d326e1c7692f735424" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="471 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="471" data-view-component="true" class="Counter js-social-count">471</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-192096771" aria-current="true" href="/dotanuki-labs/norris" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:192096771,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="18bff881f73f2301ea86c58258ad463130089f860c75815a2e9d14b466a3676b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-192096771" href="/dotanuki-labs/norris/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:192096771,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1cf829ac739e3ac6ba063663dfae304fd3beb7c730f3c9bf2ff27e8dabbe3ff3" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-192096771" href="/dotanuki-labs/norris/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:192096771,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bc51b971c4b8fdd204be88724e610faa5cc3fd9bef689719173be1a5c4c14e98" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >An app that existed before Android existed! 🔥</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13502,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a7161d755ec5bbc61c6e71b5ac11b726315202746b8f0440bdd60ea651059f5e" title="Topic: architecture" href="/topics/architecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">architecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21602,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="97f65d528176188c4717540e1683a7a28b132d23e2a7d470db09abd09ebc1377" title="Topic: kotlin-android" href="/topics/kotlin-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21863,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6cec977ea72c123dc79266a4e1897dbb0f91dc62c78cf336400913b12866c1fa" title="Topic: showcase" href="/topics/showcase" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">showcase</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:128112,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a3603cf1f0ce468089daa4f66f47ac3ade9ca9578d295bd457a74cb196b71d73" title="Topic: unidirectional-data-flow" href="/topics/unidirectional-data-flow" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">unidirectional-data-flow</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:265057,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eab8a3b227a2788ad723542338b3f992f6876d44fb6023ad19b92ade527520d1" title="Topic: kotlin-coroutines" href="/topics/kotlin-coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-coroutines</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2025-03-04T21:44:10Z" class="no-wrap">Mar 4, 2025</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:559357,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5c32ca32e4cbcc5575e7dc57f45d712ba013c19c87141002c74b1341703282c9" data-turbo="false" href="/dropbox" data-view-component="true" class="Link">dropbox</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:469908487,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4c32f54f404d392f2d44bfe715dab41eb1784c5a3db75900fc96e76a8713eccf" data-turbo="false" href="/dropbox/dependency-guard" data-view-component="true" class="Link text-bold wb-break-word">dependency-guard</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fdropbox%2Fdependency-guard" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:469908487,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4210598f9ecc2b2a9f76f801fd19413bfc82f7c508c749569081ee9353667924" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="453 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="453" data-view-component="true" class="Counter js-social-count">453</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-469908487" aria-current="true" href="/dropbox/dependency-guard" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:469908487,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="426e075c27c8d00977bca1767718f8b27c10fb7f3c5d73342b7f371b071918ca" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-469908487" href="/dropbox/dependency-guard/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:469908487,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24f50de52caffec184bdda588d0c248eef8753f8962be14e937d0d5b2ab2323e" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-469908487" href="/dropbox/dependency-guard/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:469908487,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="efcbf8d8f1e3767c9d58e049d7895bfc773270159e21d2f5c43114c23de12933" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >A Gradle plugin that guards against unintentional dependency changes.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:7506,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5173c2d9c8445eabd7672a3a66d82921fc579f97b0ad91355b1c3930a03e485d" title="Topic: build" href="/topics/build" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">build</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:9864,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5369c09f5e9ea49a14b2ebb89d4ed10cb5485268db76b916486f725a612607a0" title="Topic: gradle" href="/topics/gradle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23470,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7e270d3150be3b37e4c2b5b40120b092b0ca6ed7e6aa2573604fc872eacfd0c7" title="Topic: gradle-plugin" href="/topics/gradle-plugin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-plugin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:45429,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="71ffc2dbb4ce0d3dfd324eaec1124dd73b9d72455432066995e1a5d1bc72c889" title="Topic: build-tool" href="/topics/build-tool" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">build-tool</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:99806,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9ccee466180b67247563d456c3a37c9927b1da23a608030b3c454849137e8054" title="Topic: dependencies" href="/topics/dependencies" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dependencies</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:819413,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="51a48ec761a87c9352b26c8e2a0f426e0dce6de2328ce353617f754d810550f5" title="Topic: dependency-guard" href="/topics/dependency-guard" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dependency-guard</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2024-06-30T18:32:19Z" class="no-wrap">Jun 30, 2024</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_IMAGE&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:408189357,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4d3de105307b00523311d7143a5bf47341c144f0f26defe36d325384337a1968" data-turbo="false" style="max-height:275px" href="/alexstyl/contactstore" data-view-component="true" class="overflow-hidden flex-items-center rounded-top-2 Link color-border-muted border-bottom d-flex position-relative"><img loading="lazy" src="https://repository-images.githubusercontent.com/408189357/7fd953a9-2352-4c42-8388-e362789334dd" alt="contactstore" class="d-block width-full" ></a> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1665273,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1798e620218eb584e4c15c80e26c85928fa90345a468ac1daaacedb2b9779d35" data-turbo="false" href="/alexstyl" data-view-component="true" class="Link">alexstyl</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:408189357,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="40fb597463c9bcd986de1b2cd60295ce13dbe87ae1df3ec2721883f25403d384" data-turbo="false" href="/alexstyl/contactstore" data-view-component="true" class="Link text-bold wb-break-word">contactstore</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/alexstyl" aria-label="Sponsor @alexstyl" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;alexstyl&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="04e4ac1e3331754c23e9b42a3feca56197ea99db91008bbdce99892b0b8253cb" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Falexstyl%2Fcontactstore" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:408189357,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d45d010de9cf479ca33d4e23c01605d88d0ef5b88727ade295d136052f6603a8" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="442 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="442" data-view-component="true" class="Counter js-social-count">442</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-408189357" aria-current="true" href="/alexstyl/contactstore" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:408189357,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="657fa8b7ddea2665edc78af48d878f42b8571b5ce18782f50e43131062d7f4cf" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-408189357" href="/alexstyl/contactstore/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:408189357,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="db808a109753c8a22e785d6d80aac0574039af39f42fe1dbb8c6c318d7a9fe88" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-408189357" href="/alexstyl/contactstore/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:408189357,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e964d2cad8d88567af4ac57d272fb8ade2815114799cd7d731ba6d9afdb15b4b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >A modern, strongly-typed contacts API for Android.</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12921,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="61b48ba2f48be29fec2dfee28e92193d5a461ee7d68db6aa6779ecd0fe14c8f4" title="Topic: contacts" href="/topics/contacts" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">contacts</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13494,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="31062247a3396042730ef1010c593f71dd39fb7c2f03fb87f66b5f4bc02d8379" title="Topic: rxjava" href="/topics/rxjava" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">rxjava</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21602,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="97f65d528176188c4717540e1683a7a28b132d23e2a7d470db09abd09ebc1377" title="Topic: kotlin-android" href="/topics/kotlin-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21610,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b656669a56112c6b8220dda6e2ea813ea3c429818cd8e205de898a8f8e34daca" title="Topic: kotlin-library" href="/topics/kotlin-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21893,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3445a6cc5d39953347012b513d118a0bbf66ca25f5cf44110ff70ed34ecd7850" title="Topic: android-library" href="/topics/android-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:237983,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="590a24af4b8c9b6743cbf1d73e5ad6607c13652318c9337c7122ea86887fe012" title="Topic: contacts-app" href="/topics/contacts-app" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">contacts-app</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:265057,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eab8a3b227a2788ad723542338b3f992f6876d44fb6023ad19b92ade527520d1" title="Topic: kotlin-coroutines" href="/topics/kotlin-coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1159162,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2b619ea6c1ac14034f2a2470b2d959054a89aa7a0ec1fccae5a0a032a81c77cc" title="Topic: kotlin-coroutine-flow" href="/topics/kotlin-coroutine-flow" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-coroutine-flow</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1172018,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="423d34226db73c09086823cf98ae73c6128a5adb457a9bc023022427c495fda0" title="Topic: contacts-api" href="/topics/contacts-api" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">contacts-api</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2023-02-27T08:46:13Z" class="no-wrap">Feb 27, 2023</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:37421570,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f5037d4d1222de41a373dcc26d0dc273387ba608da69e22b44ad9ad728651317" data-turbo="false" href="/tfaki" data-view-component="true" class="Link">tfaki</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:438421106,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="45e22c9af16ce12f9cf64ed46e7e78b952ed2d16068b68f52fb665b44b96e0b9" data-turbo="false" href="/tfaki/Multi-Module-Nextflix-Composable" data-view-component="true" class="Link text-bold wb-break-word">Multi-Module-Nextflix-Composable</a> </h3> </div> <div class="d-flex flex-items-center"> <a href="/sponsors/tfaki" aria-label="Sponsor @tfaki" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;TOPIC_PAGE_SPONSOR&quot;,&quot;sponsorable_login&quot;:&quot;tfaki&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="44d9cf75f147b1b8993ee25cc0bc5dc1c8d82d688961079024e843077e851c31" data-view-component="true" class="Button--secondary Button--small Button mr-2"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart icon-sponsor mr-1 v-align-middle color-fg-sponsors anim-pulse-in"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> <span class="v-align-middle" > Sponsor </span></span> </span> </a> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Ftfaki%2FMulti-Module-Nextflix-Composable" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:438421106,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ef853cd7818248409107d5c7ba48773f906241f09c34f3bfb6eb1c6743cbb144" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="433 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="433" data-view-component="true" class="Counter js-social-count">433</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-438421106" aria-current="true" href="/tfaki/Multi-Module-Nextflix-Composable" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:438421106,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8df19f7a94df58bdbe8770bc8629f8df8ab007ef950e7ac82c362a83ac43d72b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-438421106" href="/tfaki/Multi-Module-Nextflix-Composable/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:438421106,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1fe12f66071f357f8cffa83f09cd58646d24ce38f74c5165f13043f7a431c33a" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-438421106" href="/tfaki/Multi-Module-Nextflix-Composable/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:438421106,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="23ef4bcfc90ad146f949227480a27064a552908c59023b3099e141612a7ee432" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >Includes jetpack compose, navigation, paging, hilt, retrofit, coil, coroutines, flow..</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:67,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6007b49a3ba47a2a7d9c64edc535149b710b557b0a51ad384a7adc15c364b809" title="Topic: android" href="/topics/android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:366,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2215a4a627c7e6cefb43db7c04b67ba8dde7d6a378d35af9442d1ff2ce5ba4da" title="Topic: flow" href="/topics/flow" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">flow</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12058,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="83c65ebf74887ce52fc33d454edb0deb266ee9b5a44f1445500676d93d66b678" title="Topic: navigation" href="/topics/navigation" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">navigation</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21602,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="97f65d528176188c4717540e1683a7a28b132d23e2a7d470db09abd09ebc1377" title="Topic: kotlin-android" href="/topics/kotlin-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:22178,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e1d3d2ac6d36e24cf527c118775e91089e276445efcb4bb08bc57bcf385ef22c" title="Topic: android-development" href="/topics/android-development" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-development</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:22503,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2544424873469467e2c86f7f7498b17780822a4b0b8f106778c058e2c01fd9e4" title="Topic: android-application" href="/topics/android-application" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-application</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:94890,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ecdd7a0c200d729c7e6c45848dd0c83f7d0873a07c0722367a5b523f090c3464" title="Topic: android-app" href="/topics/android-app" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-app</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:511491,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="37f50c60db2f7ac8a5c7cbb836fa7a1417b87400f40c84b0fdb0399b0d15e9bc" title="Topic: gradle-kotlin-dsl" href="/topics/gradle-kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">gradle-kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:675258,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ba03b6217f8f6d285d68a1ab385c00f935695bf80f45b3c3e87fe28d33778282" title="Topic: multimodule-kotlin-app" href="/topics/multimodule-kotlin-app" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">multimodule-kotlin-app</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:766772,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="41c04b326574b62c246b2a22b1084a8eafefa142d746c115c445152950e1e294" title="Topic: paging-library" href="/topics/paging-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">paging-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:904382,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="11c5934190f8bd5634c506b7d78d99bee6afcc8b59e7717516cadef761323dd3" title="Topic: jetpack-android" href="/topics/jetpack-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-android</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1011787,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="325898ab2131680323db9a3007b1d6689196b73a33b05fa361cbc746b8b681dd" title="Topic: jetpack-compose" href="/topics/jetpack-compose" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-compose</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1291441,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="34875abf404f81fc1aff3421b53cfb498ba8b118562154dba29d6f6fa3f806ea" title="Topic: hilt-android" href="/topics/hilt-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hilt-android</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2024-07-17T09:24:34Z" class="no-wrap">Jul 17, 2024</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:37872095,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cd85f93a252f049486fde97cc3a28944c754b61c9d784b8107f897339311b1ec" data-turbo="false" href="/valiktor" data-view-component="true" class="Link">valiktor</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:127146179,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a0d7353d1dda7c48faf6608f6737eb0850ed8ae4bbc8375a252766a0575f168e" data-turbo="false" href="/valiktor/valiktor" data-view-component="true" class="Link text-bold wb-break-word">valiktor</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fvaliktor%2Fvaliktor" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:127146179,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3215f5f1272de82d6d73b55fe65a4caafac514dea14de9f72b4b9640a8f87d82" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="431 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="431" data-view-component="true" class="Counter js-social-count">431</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-127146179" aria-current="true" href="/valiktor/valiktor" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:127146179,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="270ee3b173e37419511f4e03379f0fa8a92b63e58d2cdcf85a2285e31139196d" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-127146179" href="/valiktor/valiktor/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:127146179,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0817eca37c50d57e0aea6bc1075048d5c78b33b9bb1a7c00ba0d42c05c22c979" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-127146179" href="/valiktor/valiktor/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:127146179,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4e8d2fcb96abf7a231d94ff6b626993d1a9176c0aa870617bddce8c3fc4ccc7b" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >Valiktor is a type-safe, powerful and extensible fluent DSL to validate objects in Kotlin</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:8928,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a554590ce4b42287ace8cc3ec08a0bf371e985a044c8c5f06ac3eb3364043495" title="Topic: validation" href="/topics/validation" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">validation</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12838,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b4457098ac6d4f64f85bd130e876f2ad5a408b6f684ce807e32ea7af27d27a41" title="Topic: dsl" href="/topics/dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:21610,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b656669a56112c6b8220dda6e2ea813ea3c429818cd8e205de898a8f8e34daca" title="Topic: kotlin-library" href="/topics/kotlin-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-library</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:39351,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="53434bb2e017134be7f1dff508ad1e9e57f727b5d2525ebec39d958f262068e1" title="Topic: validations" href="/topics/validations" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">validations</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:366219,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8911a79386e943f15ef411525ad9d1df04b43e6e3d346e4ce8d052c19d269971" title="Topic: validation-library" href="/topics/validation-library" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">validation-library</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2021-12-16T09:04:46Z" class="no-wrap">Dec 16, 2021</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <article class="border rounded color-shadow-small color-bg-subtle my-4"> <div class="px-3"> <div class="d-flex flex-justify-between flex-items-start flex-wrap gap-2 my-3"> <div class="d-flex flex-1"> <span style="margin-top:2px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </span> <h3 class="f3 color-fg-muted text-normal lh-condensed" > <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;OWNER&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_OWNER_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:12267638,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a7f2dead7ccde212c9a7933ab11ab8c40a75a4f49ea0f77eb60ef512a4f57024" data-turbo="false" href="/reactivedroid" data-view-component="true" class="Link">reactivedroid</a> / <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;REPOSITORY_NAME_HEADING&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:98877626,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="797c745c63072586c7bfadc3890c8c6164a2452a345e9a63188bc3b4c89710f0" data-turbo="false" href="/reactivedroid/TvFlix" data-view-component="true" class="Link text-bold wb-break-word">TvFlix</a> </h3> </div> <div class="d-flex flex-items-center"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Freactivedroid%2FTvFlix" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:98877626,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="fd48763833b476c3b3f9e921d1e4beb927788c3d6b443df6885b2693306771d6" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn color-bg-default"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="412 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="412" data-view-component="true" class="Counter js-social-count">412</span> </a></div> </div> </div> </div> <nav aria-label="Repository menu" data-view-component="true" class="tabnav px-3 mb-0"> <ul data-view-component="true" class="tabnav-tabs"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab-98877626" aria-current="true" href="/reactivedroid/TvFlix" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY&quot;,&quot;click_visual_representation&quot;:&quot;CODE_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:98877626,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="15381bf6ad023f6007f3aa21f66a0a8eb16f6640c3205a72740249a2fa3738c6" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code color-fg-default"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> Code </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab-98877626" href="/reactivedroid/TvFlix/issues" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_ISSUES&quot;,&quot;click_visual_representation&quot;:&quot;ISSUES_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:98877626,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="193443175322d91c0356d5f4bc40b3f98bef8ed35729a46c4dc5476b5fbd09fe" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> Issues </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab-98877626" href="/reactivedroid/TvFlix/pulls" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_PULL_REQUESTS&quot;,&quot;click_visual_representation&quot;:&quot;PULL_REQUESTS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:98877626,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e9cfbf145bb278601db5b8d612bd2873eb0dfda6ef15526005aa1cd5cc237738" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request color-fg-muted"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> Pull requests </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="discussions-tab-98877626" href="/reactivedroid/TvFlix/discussions" data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;REPOSITORY_DISCUSSIONS&quot;,&quot;click_visual_representation&quot;:&quot;DISCUSSIONS_TAB&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:98877626,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="907c43999e7db46cbedbf364c7aa112d31fb9e604c627a49c81d0666e5335fd0" data-turbo="false" data-view-component="true" class="tabnav-tab f6 px-2 py-1"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion color-fg-muted"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> Discussions </a></li> </ul> </nav> <div class="color-bg-default rounded-bottom-2"> <div class="px-3 pt-3"> <p class="color-fg-muted mb-0" >TvFlix android app using Dagger Hilt, Coroutines, Flow, KTX, Jetpack(Room, ViewModel, Paging3, Lifecycle) based on MVVM with clean code architecture purely written in Kotlin</p> </div> <div class="d-flex flex-wrap border-bottom color-border-muted px-3 pt-2 pb-2"> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:68,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="24d3bf7b2506f9fcbd7c041f108f7dd1f73c789352e0f7c3994501ada08f5ba4" title="Topic: kotlin" href="/topics/kotlin" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:839,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a07efa4cab35c68ba33f300af9764220628142877da982f30df80da303e98345" title="Topic: unit-testing" href="/topics/unit-testing" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">unit-testing</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13430,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d471b92c7b44d36cdce7bf868338bd4efd9603c796c656dc618a9c1d83aef70c" title="Topic: clean-code" href="/topics/clean-code" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">clean-code</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13639,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ce5363378bb3b3c37a03f8062489be688bb4d29688e81d06eb2272fad32c07a1" title="Topic: pmd" href="/topics/pmd" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">pmd</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:13642,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9bf5a09ea7ba7c10dc900e6b475afb75203f08cfb0168dc78b20fb9ce8831e13" title="Topic: checkstyle" href="/topics/checkstyle" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">checkstyle</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:16903,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee2727b5b783e8e7be3a4943311c63a1571cf30e2aca19c78429cb99c4ed2cd6" title="Topic: coroutines" href="/topics/coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:23911,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2404349114c3c6a2a3ee1d139bb44c0024a6210dc409bbbcb9323bce6116ba17" title="Topic: clean-architecture" href="/topics/clean-architecture" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">clean-architecture</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:24037,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="782cb3a9d2efeac5cfd7c69733559bc8e14ce4ab72000a0162740741e934ce7f" title="Topic: mockito" href="/topics/mockito" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mockito</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:74720,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="833db68c5efb4395e9ef02b3313488dc16d64e8aede25e376518ae48602f21f2" title="Topic: retrofit2" href="/topics/retrofit2" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">retrofit2</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:105492,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0bf133e7d88784bd3984d293e2a641c04f76aaae656d48cf00ed72e383297e" title="Topic: kotlin-dsl" href="/topics/kotlin-dsl" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-dsl</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:184353,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1842ca4b6ace0cec39df2272b142885581a65decde60b0a1fc5b9ed9a7caa3a3" title="Topic: databinding" href="/topics/databinding" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">databinding</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:265057,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eab8a3b227a2788ad723542338b3f992f6876d44fb6023ad19b92ade527520d1" title="Topic: kotlin-coroutines" href="/topics/kotlin-coroutines" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">kotlin-coroutines</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:363828,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="71d3e078e346b4db6ea92858f9bd2c90f5b45f6a6fc9d33c4c49a2fceea4f0da" title="Topic: codeanalysis" href="/topics/codeanalysis" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">codeanalysis</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:394403,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e5f63098ff7a985367292605824980fbcb58301706b2a70205166bbed18921c6" title="Topic: espresso-tests" href="/topics/espresso-tests" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">espresso-tests</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:488255,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="beec3bf118306e2c73394eac4d3f523f66f3864b77cb5dfe9a621835fc6e521b" title="Topic: android-architecture-components" href="/topics/android-architecture-components" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">android-architecture-components</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:887001,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f3001e4a3468ab186809c2fba3cafd9ca72ef00cd31d95b25ef3ad8b993989a3" title="Topic: jetpack-pagination" href="/topics/jetpack-pagination" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-pagination</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:929324,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bd79c0164adda90cba52659e4e67b47a6cfed9f72f36a936800387dd51916ebe" title="Topic: jetpack-lifecycle-components" href="/topics/jetpack-lifecycle-components" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-lifecycle-components</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1098297,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="4774a6f8c9c3d143937bdc88432ac25465ba9645ae9d27c97df9bb3336059f36" title="Topic: mvvm-architechure" href="/topics/mvvm-architechure" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">mvvm-architechure</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1183832,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d7eed24382f8de06fa39dfe1c8b274a4c0db96dc183b0b5c1eb4e31d261cc5c0" title="Topic: jetpack-room" href="/topics/jetpack-room" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">jetpack-room</a> <a data-hydro-click="{&quot;event_type&quot;:&quot;explore.click&quot;,&quot;payload&quot;:{&quot;click_context&quot;:&quot;REPOSITORY_CARD&quot;,&quot;click_target&quot;:&quot;TOPIC&quot;,&quot;click_visual_representation&quot;:&quot;TOPIC_TAG&quot;,&quot;actor_id&quot;:null,&quot;record_id&quot;:1291441,&quot;originating_url&quot;:&quot;https://github.com/topics/kotlin-dsl&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="34875abf404f81fc1aff3421b53cfb498ba8b118562154dba29d6f6fa3f806ea" title="Topic: hilt-android" href="/topics/hilt-android" data-view-component="true" class="topic-tag topic-tag-link Link f6 mb-2">hilt-android</a> </div> <div class="p-3"> <ul class="d-flex f6 list-style-none color-fg-muted"> <li class="mr-4"> Updated <relative-time datetime="2023-03-30T14:10:46Z" class="no-wrap">Mar 30, 2023</relative-time> </li> <li class="mr-4"> <span class="f6 my-1 ml-0"> <span class="repo-language-color" style="background-color: #A97BFF"></span> <span itemprop="programmingLanguage">Kotlin</span> </span> </li> </ul> </div> </div> </article> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="ajax-pagination-form js-ajax-pagination" data-turbo="false" action="https://github.com/topics/kotlin-dsl" accept-charset="UTF-8" method="get"> <input name="page" type="hidden" value="2"> <button type="submit" class="ajax-pagination-btn btn color-border-default f6 mt-0 width-full" data-disable-with="Loading more&hellip;" > Load more&hellip; </button> </form> </div> <div class="col-md-4 col-lg-3"> <div class="mb-6"> <h2 class="h4 mb-2"> Improve this page </h2> <p class="color-fg-muted"> Add a description, image, and links to the <span class="text-bold">kotlin-dsl</span> topic page so that developers can more easily learn about it. </p> <p> <a href="https://github.com/github/explore/tree/master/CONTRIBUTING.md?source=add-description-kotlin-dsl" data-ga-click="Explore, add description, text:add description" > Curate this topic <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right ml-1"> <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path> </svg> </a> </p> </div> <div class="mb-6"> <h2 class="h4 mb-2"> Add this topic to your repo </h2> <p class="color-fg-muted"> To associate your repository with the <span class="text-bold">kotlin-dsl</span> topic, visit your repo's landing page and select "manage topics." </p> <p> <a href="https://docs.github.com/en/articles/classifying-your-repository-with-topics"> Learn more <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right ml-1"> <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path> </svg> </a> </p> </div> </div> </div> </div> </div> </main> </div> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" > <h2 class='sr-only'>Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> </a> <span> &copy; 2025 GitHub,&nbsp;Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2" > <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}" > Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}" > Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can’t perform that action at this time. </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10