This is an automated email from the ASF dual-hosted git repository.

lresende pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-toree.git


The following commit(s) were added to refs/heads/master by this push:
     new 82aaf23c [TOREE-555] Upgrade Coursier from 1.0.3 to 2.0.0 (#223)
82aaf23c is described below

commit 82aaf23c73cc0e4bf2b533f7028e74a3f400ca52
Author: Cheng Pan <[email protected]>
AuthorDate: Wed Sep 4 13:52:27 2024 +0800

    [TOREE-555] Upgrade Coursier from 1.0.3 to 2.0.0 (#223)
---
 etc/legal/LICENSE_extras                           |  47 +-
 etc/legal/licenses/LICENSE-ammonite.txt            |  25 -
 etc/legal/licenses/LICENSE-jline.txt               | 902 ---------------------
 etc/legal/licenses/LICENSE-scala-stm.txt           |  24 -
 etc/legal/licenses/LICENSE-scalaz.txt              |  24 -
 .../CoursierDependencyDownloader.scala             | 131 +--
 project/Dependencies.scala                         |   2 +-
 7 files changed, 85 insertions(+), 1070 deletions(-)

diff --git a/etc/legal/LICENSE_extras b/etc/legal/LICENSE_extras
index 01ec513b..fccbf2f3 100644
--- a/etc/legal/LICENSE_extras
+++ b/etc/legal/LICENSE_extras
@@ -13,51 +13,40 @@ Apache License 2.0
    com.google.guava:guava:14.0.1
    org.apache.pekko:pekko-slf4j_2.12:1.0.2
    org.apache.pekko:pekko-actor_2.12:1.0.2
-   com.typesafe:config:1.3.0 -> 
https://github.com/lightbend/config/blob/master/LICENSE-2.0.txt
-   com.typesafe.play:play-json_2.11:2.3.10 -> 
https://github.com/playframework/play-json/blob/master/LICENSE
-   com.typesafe.play:play-datacommons_2.11:2.3.10
-   com.typesafe.play:play-functional_2.11:2.3.10
-   com.typesafe.play:play-iteratees_2.11:2.3.10
+   com.typesafe:config:1.4.3 -> 
https://github.com/lightbend/config/blob/master/LICENSE-2.0.txt
+   com.typesafe.play:play-json_2.12:2.7.4 -> 
https://github.com/playframework/play-json/blob/master/LICENSE
+   com.typesafe.play:play-functional_2.12:2.7.4
    commons-logging:commons-logging:1.1.3 -> 
https://github.com/apache/commons-logging/blob/trunk/LICENSE.txt
-   io.get-coursier:coursier-cache_2.11:1.0.0-RC10 -> 
https://github.com/coursier/coursier/blob/master/LICENSE
-   io.get-coursier:coursier_2.11:1.0.0-RC10 -> 
https://github.com/coursier/coursier/blob/master/LICENSE
-   joda-time:joda-time:2.3 -> 
https://github.com/JodaOrg/joda-time/blob/master/LICENSE.txt
-   org.springframework:spring-core:4.1.1.RELEASE
+   io.get-coursier:coursier-cache_2.12:2.0.0 -> 
https://github.com/coursier/coursier/blob/master/LICENSE
+   io.get-coursier:coursier_2.12:2.0.0 -> 
https://github.com/coursier/coursier/blob/master/LICENSE
+   joda-time:joda-time:2.10.1 -> 
https://github.com/JodaOrg/joda-time/blob/master/LICENSE.txt
+   org.springframework:spring-core:5.2.2.RELEASE
    org.apache.commons:commons-exec:1.3 -> 
https://github.com/apache/commons-exec/blob/trunk/LICENSE.txt
-   org.joda:joda-convert:1.6 -> 
https://github.com/JodaOrg/joda-convert/blob/master/LICENSE.txt
-
 
 ========================================================================
 MPL v2
 ========================================================================
 
-   org.zeromq:jeromq:0.3.6 -> 
https://github.com/zeromq/jeromq/blob/master/LICENSE
+   org.zeromq:jeromq:0.5.3 -> 
https://github.com/zeromq/jeromq/blob/master/LICENSE
 
 ========================================================================
 BSD-like
 ========================================================================
 
-   asm:asm-commons:5.1 -> http://asm.ow2.org/license.html and 
licenses/LICENSE-asm.txt
-   asm:asm-tree:5.1 -> http://asm.ow2.org/license.html and 
licenses/LICENSE-asm.txt
-   asm:asm-util:5.1 -> http://asm.ow2.org/license.html and 
licenses/LICENSE-asm.txt
-   asm:asm:5.1 -> http://asm.ow2.org/license.html and licenses/LICENSE-asm.txt
+   asm:asm-commons:7.1 -> http://asm.ow2.org/license.html and 
licenses/LICENSE-asm.txt
+   asm:asm-tree:7.1 -> http://asm.ow2.org/license.html and 
licenses/LICENSE-asm.txt
+   asm:asm-util:7.1 -> http://asm.ow2.org/license.html and 
licenses/LICENSE-asm.txt
+   asm:asm:7.1 -> http://asm.ow2.org/license.html and licenses/LICENSE-asm.txt
    com.github.jupyter:jvm-repr:0.1.0 -> 
https://github.com/jupyter/jvm-repr/blob/master/LICENSE
-   jline:jline:2.6 -> https://github.com/jline/jline2/blob/master/LICENSE.txt 
and licenses/LICENSE-jline.txt
-   org.clapper:classutil_2.11:1.0.12 -> 
http://software.clapper.org/javautil/#copyright-and-license and 
licenses/LICENSE-clapper.txt
-   org.clapper:grizzled-scala_2.11:2.4.1 -> 
http://software.clapper.org/grizzled-scala/#copyright-and-license and 
licenses/LICENSE-clapper.txt
-   org.scala-lang.modules:scala-java8-compat_2.11:0.7.0 -> 
https://github.com/scala/scala-java8-compat/blob/master/LICENSE
-   org.scala-lang.modules:scala-xml_2.11:1.0.6 -> 
https://github.com/scala/scala-xml/blob/master/LICENSE.md
-   org.scala-lang:scala-reflect:2.11.8 -> 
http://www.scala-lang.org/license.html and licenses/LICENSE-scala.txt
-   org.scala-stm:scala-stm_2.11:0.7 -> 
https://nbronson.github.io/scala-stm/license.html and 
licenses/LICENSE-scala-stm.txt
-   org.scalaz:scalaz-concurrent_2.11:7.2.13 -> 
https://github.com/scalaz/scalaz/blob/series/7.1.x/etc/LICENCE and 
licenses/LICENSE-scalaz.txt
-   org.scalaz:scalaz-core_2.11:7.2.13 -> 
https://github.com/scalaz/scalaz/blob/series/7.1.x/etc/LICENCE and 
licenses/LICENSE-scalaz.txt
-   org.scalaz:scalaz-effect_2.11:7.2.13 -> 
https://github.com/scalaz/scalaz/blob/series/7.1.x/etc/LICENCE and 
licenses/LICENSE-scalaz.txt
-   org.scalamacros:quasiquotes_2.10:2.0.1 -> 
http://www.scala-lang.org/license.html and licenses/LICENSE-scala.txt
+   org.clapper:classutil_2.12:1.5.1 -> 
http://software.clapper.org/javautil/#copyright-and-license and 
licenses/LICENSE-clapper.txt
+   org.clapper:grizzled-scala_2.12:4.9.3 -> 
http://software.clapper.org/grizzled-scala/#copyright-and-license and 
licenses/LICENSE-clapper.txt
+   org.scala-lang.modules:scala-java8-compat_2.12:1.0.2 -> 
https://github.com/scala/scala-java8-compat/blob/master/LICENSE
+   org.scala-lang.modules:scala-xml_2.12:2.1.0 -> 
https://github.com/scala/scala-xml/blob/master/LICENSE.md
+   org.scala-lang:scala-reflect:2.12.15 -> 
http://www.scala-lang.org/license.html and licenses/LICENSE-scala.txt
 
 ========================================================================
 MIT license
 ========================================================================
 
-   com.lihaoyi:ammonite-terminal_2.10:0.5.0 -> 
https://github.com/lihaoyi/Ammonite/blob/master/LICENSE and 
licenses/LICENSE-ammonite.txt
    net.sf.jopt-simple:jopt-simple:4.9 -> 
https://pholser.github.io/jopt-simple/license.html and 
licenses/LICENSE-jopt-simple.txt
-   org.slf4j:slf4j-api:1.7.21 -> http://www.slf4j.org/license.html and 
licenses/LICENSE-slf4j.txt
+   org.slf4j:slf4j-api:1.7.32 -> http://www.slf4j.org/license.html and 
licenses/LICENSE-slf4j.txt
diff --git a/etc/legal/licenses/LICENSE-ammonite.txt 
b/etc/legal/licenses/LICENSE-ammonite.txt
deleted file mode 100644
index 307d8e96..00000000
--- a/etc/legal/licenses/LICENSE-ammonite.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-License
-=======
-
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Li Haoyi ([email protected])
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
-DEALINGS IN THE SOFTWARE.
diff --git a/etc/legal/licenses/LICENSE-jline.txt 
b/etc/legal/licenses/LICENSE-jline.txt
deleted file mode 100644
index 0565aea6..00000000
--- a/etc/legal/licenses/LICENSE-jline.txt
+++ /dev/null
@@ -1,902 +0,0 @@
-
-
-
-
-<!DOCTYPE html>
-<html lang="en" class="">
-  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: 
http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: 
http://ogp.me/ns/profile#";>
-    <meta charset='utf-8'>
-
-    <link crossorigin="anonymous" 
href="https://assets-cdn.github.com/assets/frameworks-473733caf98c6c528c9ddeb25f5830e456cb75553a54d79c8c3296648555f848.css";
 media="all" rel="stylesheet" />
-    <link crossorigin="anonymous" 
href="https://assets-cdn.github.com/assets/github-9366a97c2c7a861b73bf6d1bf3b461762a103f28da88b1a7612bd0a7d26c3542.css";
 media="all" rel="stylesheet" />
-    
-    
-    
-    <link crossorigin="anonymous" 
href="https://assets-cdn.github.com/assets/site-2d5d1699983d8dd7c384c67dfc183fbace8e3a24866e8822069d599f68e71fb2.css";
 media="all" rel="stylesheet" />
-
-    <link as="script" 
href="https://assets-cdn.github.com/assets/frameworks-9eb0ddac6d1c94c56980360abcade2abb10d27d7880f7ee7bf6640c2c2a06fc8.js";
 rel="preload" />
-    
-    <link as="script" 
href="https://assets-cdn.github.com/assets/github-4ddbe43ff9bf343ea4e58a83f44f72427d4c0e030722f47eb6ea4d231abfa161.js";
 rel="preload" />
-
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta http-equiv="Content-Language" content="en">
-    <meta name="viewport" content="width=1020">
-    
-    
-    <title>jline2/LICENSE.txt at master · jline/jline2 · GitHub</title>
-    <link rel="search" type="application/opensearchdescription+xml" 
href="/opensearch.xml" title="GitHub">
-    <link rel="fluid-icon" href="https://github.com/fluidicon.png"; 
title="GitHub">
-    <link rel="apple-touch-icon" href="/apple-touch-icon.png">
-    <link rel="apple-touch-icon" sizes="57x57" 
href="/apple-touch-icon-57x57.png">
-    <link rel="apple-touch-icon" sizes="60x60" 
href="/apple-touch-icon-60x60.png">
-    <link rel="apple-touch-icon" sizes="72x72" 
href="/apple-touch-icon-72x72.png">
-    <link rel="apple-touch-icon" sizes="76x76" 
href="/apple-touch-icon-76x76.png">
-    <link rel="apple-touch-icon" sizes="114x114" 
href="/apple-touch-icon-114x114.png">
-    <link rel="apple-touch-icon" sizes="120x120" 
href="/apple-touch-icon-120x120.png">
-    <link rel="apple-touch-icon" sizes="144x144" 
href="/apple-touch-icon-144x144.png">
-    <link rel="apple-touch-icon" sizes="152x152" 
href="/apple-touch-icon-152x152.png">
-    <link rel="apple-touch-icon" sizes="180x180" 
href="/apple-touch-icon-180x180.png">
-    <meta property="fb:app_id" content="1401488693436528">
-
-      <meta 
content="https://avatars0.githubusercontent.com/u/711075?v=3&amp;s=400"; 
name="twitter:image:src" /><meta content="@github" name="twitter:site" /><meta 
content="summary" name="twitter:card" /><meta content="jline/jline2" 
name="twitter:title" /><meta content="jline2 - The new Jline" 
name="twitter:description" />
-      <meta 
content="https://avatars0.githubusercontent.com/u/711075?v=3&amp;s=400"; 
property="og:image" /><meta content="GitHub" property="og:site_name" /><meta 
content="object" property="og:type" /><meta content="jline/jline2" 
property="og:title" /><meta content="https://github.com/jline/jline2"; 
property="og:url" /><meta content="jline2 - The new Jline" 
property="og:description" />
-      <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";>
-    <link rel="assets" href="https://assets-cdn.github.com/";>
-    
-    <meta name="pjax-timeout" content="1000">
-    
-
-    <meta name="msapplication-TileImage" content="/windows-tile.png">
-    <meta name="msapplication-TileColor" content="#ffffff">
-    <meta name="selected-link" value="repo_source" data-pjax-transient>
-
-    <meta name="google-site-verification" 
content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
-<meta name="google-site-verification" 
content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
-    <meta name="google-analytics" content="UA-3769691-2">
-
-<meta content="collector.githubapp.com" name="octolytics-host" /><meta 
content="github" name="octolytics-app-id" /><meta 
content="20616E3D:53FA:738C7BF:57080DF6" name="octolytics-dimension-request_id" 
/>
-<meta content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" 
data-pjax-transient="true" name="analytics-location" />
-
-
-
-  <meta class="js-ga-set" name="dimension1" content="Logged Out">
-
-
-
-        <meta name="hostname" content="github.com">
-    <meta name="user-login" content="">
-
-        <meta name="expected-hostname" content="github.com">
-      <meta name="js-proxy-site-detection-payload" 
content="YmM4YTBmNGFjMmQ4YTU5ZjBmNWY3OGRjNDExZjdjY2NiYmM5ZGRjMWNjNjYwZGIyOGVlN2VkOTU3OGIwNjY1M3x7InJlbW90ZV9hZGRyZXNzIjoiMzIuOTcuMTEwLjYxIiwicmVxdWVzdF9pZCI6IjIwNjE2RTNEOjUzRkE6NzM4QzdCRjo1NzA4MERGNiIsInRpbWVzdGFtcCI6MTQ2MDE0NTY1NX0=">
-
-      <link rel="mask-icon" 
href="https://assets-cdn.github.com/pinned-octocat.svg"; color="#4078c0">
-      <link rel="icon" type="image/x-icon" 
href="https://assets-cdn.github.com/favicon.ico";>
-
-    <meta content="3b1abb444783abf3f89144ac1f8fecf1948d5587" name="form-nonce" 
/>
-
-    <meta http-equiv="x-pjax-version" 
content="97338dab10e3d7ee1da8a3fa3ab55a04">
-    
-
-      
-  <meta name="description" content="jline2 - The new Jline">
-  <meta name="go-import" content="github.com/jline/jline2 git 
https://github.com/jline/jline2.git";>
-
-  <meta content="711075" name="octolytics-dimension-user_id" /><meta 
content="jline" name="octolytics-dimension-user_login" /><meta 
content="1577604" name="octolytics-dimension-repository_id" /><meta 
content="jline/jline2" name="octolytics-dimension-repository_nwo" /><meta 
content="true" name="octolytics-dimension-repository_public" /><meta 
content="false" name="octolytics-dimension-repository_is_fork" /><meta 
content="1577604" name="octolytics-dimension-repository_network_root_id" /><me 
[...]
-  <link href="https://github.com/jline/jline2/commits/master.atom"; 
rel="alternate" title="Recent Commits to jline2:master" 
type="application/atom+xml">
-
-
-      <link rel="canonical" 
href="https://github.com/jline/jline2/blob/master/LICENSE.txt"; 
data-pjax-transient>
-  </head>
-
-
-  <body class="logged-out   env-production  vis-public page-blob">
-    <div id="js-pjax-loader-bar" class="pjax-loader-bar"></div>
-    <a href="#start-of-content" tabindex="1" class="accessibility-aid 
js-skip-to-content">Skip to content</a>
-
-    
-    
-    
-
-
-
-          <header class="site-header js-details-container" role="banner">
-  <div class="container-responsive">
-    <a class="header-logo-invertocat" href="https://github.com/"; 
aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, 
icon:logo-wordmark">
-      <svg aria-hidden="true" class="octicon octicon-mark-github" height="32" 
version="1.1" viewBox="0 0 16 16" width="32"><path d="M8 0C3.58 0 0 3.58 0 8c0 
3.54 2.29 6.53 5.47 7.59 0.4 0.07 0.55-0.17 0.55-0.38 
0-0.19-0.01-0.82-0.01-1.49-2.01 
0.37-2.53-0.49-2.69-0.94-0.09-0.23-0.48-0.94-0.82-1.13-0.28-0.15-0.68-0.52-0.01-0.53
 0.63-0.01 1.08 0.58 1.23 0.82 0.72 1.21 1.87 0.87 2.33 0.66 0.07-0.52 
0.28-0.87 0.51-1.07-1.78-0.2-3.64-0.89-3.64-3.95 0-0.87 0.31-1.59 
0.82-2.15-0.08-0.2-0.36-1.02 [...]
-    </a>
-
-    <button class="btn-link right site-header-toggle js-details-target" 
type="button" aria-label="Toggle navigation">
-      <svg aria-hidden="true" class="octicon octicon-three-bars" height="24" 
version="1.1" viewBox="0 0 12 16" width="18"><path d="M11.41 9H0.59c-0.59 
0-0.59-0.41-0.59-1s0-1 0.59-1h10.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1z 
m0-4H0.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h10.81c0.59 0 0.59 0.41 0.59 1s0 
1-0.59 1zM0.59 11h10.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H0.59c-0.59 
0-0.59-0.41-0.59-1s0-1 0.59-1z"></path></svg>
-    </button>
-
-    <div class="site-header-menu">
-      <nav class="site-header-nav site-header-nav-main">
-        <a href="/personal" class="js-selected-navigation-item nav-item 
nav-item-personal" data-ga-click="Header, click, Nav menu - item:personal" 
data-selected-links="/personal /personal">
-          Personal
-</a>        <a href="/open-source" class="js-selected-navigation-item nav-item 
nav-item-opensource" data-ga-click="Header, click, Nav menu - item:opensource" 
data-selected-links="/open-source /open-source">
-          Open source
-</a>        <a href="/business" class="js-selected-navigation-item nav-item 
nav-item-business" data-ga-click="Header, click, Nav menu - item:business" 
data-selected-links="/business /business/features /business/customers 
/business">
-          Business
-</a>        <a href="/explore" class="js-selected-navigation-item nav-item 
nav-item-explore" data-ga-click="Header, click, Nav menu - item:explore" 
data-selected-links="/explore /trending /trending/developers /integrations 
/integrations/feature/code /integrations/feature/collaborate 
/integrations/feature/ship /explore">
-          Explore
-</a>      </nav>
-
-      <div class="site-header-actions">
-            <a class="btn btn-primary site-header-actions-btn" 
href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked 
Sign up, text:sign-up">Sign up</a>
-          <a class="btn site-header-actions-btn mr-2" 
href="/login?return_to=%2Fjline%2Fjline2%2Fblob%2Fmaster%2FLICENSE.txt" 
data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
-      </div>
-
-        <nav class="site-header-nav site-header-nav-secondary">
-          <a class="nav-item" href="/pricing">Pricing</a>
-          <a class="nav-item" href="/blog">Blog</a>
-          <a class="nav-item" href="https://help.github.com";>Support</a>
-          <a class="nav-item header-search-link" 
href="https://github.com/search";>Search GitHub</a>
-              <div class="header-search scoped-search site-scoped-search 
js-site-search" role="search">
-  <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" 
action="/jline/jline2/search" class="js-site-search-form" 
data-scoped-search-url="/jline/jline2/search" 
data-unscoped-search-url="/search" method="get"><div 
style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" 
value="&#x2713;" /></div>
-    <label class="form-control header-search-wrapper 
js-chromeless-input-container">
-      <div class="header-search-scope">This repository</div>
-      <input type="text"
-        class="form-control header-search-input js-site-search-focus 
js-site-search-field is-clearable"
-        data-hotkey="s"
-        name="q"
-        placeholder="Search"
-        aria-label="Search this repository"
-        data-unscoped-placeholder="Search GitHub"
-        data-scoped-placeholder="Search"
-        tabindex="1"
-        autocapitalize="off">
-    </label>
-</form></div>
-
-        </nav>
-    </div>
-  </div>
-</header>
-
-
-
-    <div id="start-of-content" class="accessibility-aid"></div>
-
-      <div id="js-flash-container">
-</div>
-
-
-    <div role="main" class="main-content">
-        <div itemscope itemtype="http://schema.org/SoftwareSourceCode";>
-    <div id="js-repo-pjax-container" data-pjax-container>
-      
-<div class="pagehead repohead instapaper_ignore readability-menu 
experiment-repo-nav">
-  <div class="container repohead-details-container">
-
-    
-
-<ul class="pagehead-actions">
-
-  <li>
-      <a href="/login?return_to=%2Fjline%2Fjline2"
-    class="btn btn-sm btn-with-count tooltipped tooltipped-n"
-    aria-label="You must be signed in to watch a repository" rel="nofollow">
-    <svg aria-hidden="true" class="octicon octicon-eye" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.06 2C3 2 0 8 0 8s3 6 
8.06 6c4.94 0 7.94-6 7.94-6S13 2 8.06 2z m-0.06 10c-2.2 0-4-1.78-4-4 0-2.2 
1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4z m2-4c0 1.11-0.89 2-2 
2s-2-0.89-2-2 0.89-2 2-2 2 0.89 2 2z"></path></svg>
-    Watch
-  </a>
-  <a class="social-count" href="/jline/jline2/watchers">
-    52
-  </a>
-
-  </li>
-
-  <li>
-      <a href="/login?return_to=%2Fjline%2Fjline2"
-    class="btn btn-sm btn-with-count tooltipped tooltipped-n"
-    aria-label="You must be signed in to star a repository" rel="nofollow">
-    <svg aria-hidden="true" class="octicon octicon-star" height="16" 
version="1.1" viewBox="0 0 14 16" width="14"><path d="M14 6l-4.9-0.64L7 1 4.9 
5.36 0 6l3.6 3.26L2.67 14l4.33-2.33 4.33 2.33L10.4 9.26 14 6z"></path></svg>
-    Star
-  </a>
-
-    <a class="social-count js-social-count" href="/jline/jline2/stargazers">
-      516
-    </a>
-
-  </li>
-
-  <li>
-      <a href="/login?return_to=%2Fjline%2Fjline2"
-        class="btn btn-sm btn-with-count tooltipped tooltipped-n"
-        aria-label="You must be signed in to fork a repository" rel="nofollow">
-        <svg aria-hidden="true" class="octicon octicon-repo-forked" 
height="16" version="1.1" viewBox="0 0 10 16" width="10"><path d="M8 1c-1.11 
0-2 0.89-2 2 0 0.73 0.41 1.38 1 1.72v1.28L5 8 3 6v-1.28c0.59-0.34 1-0.98 1-1.72 
0-1.11-0.89-2-2-2S0 1.89 0 3c0 0.73 0.41 1.38 1 1.72v1.78l3 3v1.78c-0.59 0.34-1 
0.98-1 1.72 0 1.11 0.89 2 2 2s2-0.89 
2-2c0-0.73-0.41-1.38-1-1.72V9.5l3-3V4.72c0.59-0.34 1-0.98 1-1.72 
0-1.11-0.89-2-2-2zM2 4.2c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 1.2 0.55 1.2 
1.2-0 [...]
-        Fork
-      </a>
-
-    <a href="/jline/jline2/network" class="social-count">
-      143
-    </a>
-  </li>
-</ul>
-
-    <h1 class="entry-title public ">
-  <svg aria-hidden="true" class="octicon octicon-repo" height="16" 
version="1.1" viewBox="0 0 12 16" width="12"><path d="M4 9h-1v-1h1v1z 
m0-3h-1v1h1v-1z m0-2h-1v1h1v-1z m0-2h-1v1h1v-1z m8-1v12c0 0.55-0.45 1-1 
1H6v2l-1.5-1.5-1.5 1.5V14H1c-0.55 0-1-0.45-1-1V1C0 0.45 0.45 0 1 0h10c0.55 0 1 
0.45 1 1z m-1 10H1v2h2v-1h3v1h5V11z m0-10H2v9h9V1z"></path></svg>
-  <span class="author" itemprop="author"><a href="/jline" class="url fn" 
rel="author">jline</a></span><!--
---><span class="path-divider">/</span><!--
---><strong itemprop="name"><a href="/jline/jline2" 
data-pjax="#js-repo-pjax-container">jline2</a></strong>
-
-</h1>
-
-  </div>
-  <div class="container">
-    
-<nav class="reponav js-repo-nav js-sidenav-container-pjax"
-     itemscope
-     itemtype="http://schema.org/BreadcrumbList";
-     role="navigation"
-     data-pjax="#js-repo-pjax-container">
-
-  <span itemscope itemtype="http://schema.org/ListItem"; 
itemprop="itemListElement">
-    <a href="/jline/jline2" aria-selected="true" 
class="js-selected-navigation-item selected reponav-item" data-hotkey="g c" 
data-selected-links="repo_source repo_downloads repo_commits repo_releases 
repo_tags repo_branches /jline/jline2" itemprop="url">
-      <svg aria-hidden="true" class="octicon octicon-code" height="16" 
version="1.1" viewBox="0 0 14 16" width="14"><path d="M9.5 3l-1.5 1.5 3.5 3.5L8 
11.5l1.5 1.5 4.5-5L9.5 3zM4.5 3L0 8l4.5 5 1.5-1.5L2.5 8l3.5-3.5L4.5 
3z"></path></svg>
-      <span itemprop="name">Code</span>
-      <meta itemprop="position" content="1">
-</a>  </span>
-
-    <span itemscope itemtype="http://schema.org/ListItem"; 
itemprop="itemListElement">
-      <a href="/jline/jline2/issues" class="js-selected-navigation-item 
reponav-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels 
repo_milestones /jline/jline2/issues" itemprop="url">
-        <svg aria-hidden="true" class="octicon octicon-issue-opened" 
height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M7 2.3c3.14 0 
5.7 2.56 5.7 5.7S10.14 13.7 7 13.7 1.3 11.14 1.3 8s2.56-5.7 5.7-5.7m0-1.3C3.14 
1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7S10.86 1 7 1z m1 3H6v5h2V4z m0 
6H6v2h2V10z"></path></svg>
-        <span itemprop="name">Issues</span>
-        <span class="counter">42</span>
-        <meta itemprop="position" content="2">
-</a>    </span>
-
-  <span itemscope itemtype="http://schema.org/ListItem"; 
itemprop="itemListElement">
-    <a href="/jline/jline2/pulls" class="js-selected-navigation-item 
reponav-item" data-hotkey="g p" data-selected-links="repo_pulls 
/jline/jline2/pulls" itemprop="url">
-      <svg aria-hidden="true" class="octicon octicon-git-pull-request" 
height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M11 
11.28c0-1.73 0-6.28 0-6.28-0.03-0.78-0.34-1.47-0.94-2.06s-1.28-0.91-2.06-0.94c0 
0-1.02 0-1 0V0L4 3l3 3V4h1c0.27 0.02 0.48 0.11 0.69 0.31s0.3 0.42 0.31 
0.69v6.28c-0.59 0.34-1 0.98-1 1.72 0 1.11 0.89 2 2 2s2-0.89 
2-2c0-0.73-0.41-1.38-1-1.72z m-1 2.92c-0.66 0-1.2-0.55-1.2-1.2s0.55-1.2 1.2-1.2 
1.2 0.55 1.2 1.2-0.55 1.2-1.2 1.2zM4 3c0-1.11-0.89-2-2-2S0 1 [...]
-      <span itemprop="name">Pull requests</span>
-      <span class="counter">10</span>
-      <meta itemprop="position" content="3">
-</a>  </span>
-
-    <a href="/jline/jline2/wiki" class="js-selected-navigation-item 
reponav-item" data-hotkey="g w" data-selected-links="repo_wiki 
/jline/jline2/wiki">
-      <svg aria-hidden="true" class="octicon octicon-book" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path d="M2 5h4v1H2v-1z m0 
3h4v-1H2v1z m0 2h4v-1H2v1z m11-5H9v1h4v-1z m0 2H9v1h4v-1z m0 2H9v1h4v-1z 
m2-6v9c0 0.55-0.45 1-1 1H8.5l-1 1-1-1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 
1-1h5.5l1 1 1-1h5.5c0.55 0 1 0.45 1 1z m-8 0.5l-0.5-0.5H1v9h6V3.5z 
m7-0.5H8.5l-0.5 0.5v8.5h6V3z"></path></svg>
-      Wiki
-</a>
-  <a href="/jline/jline2/pulse" class="js-selected-navigation-item 
reponav-item" data-selected-links="pulse /jline/jline2/pulse">
-    <svg aria-hidden="true" class="octicon octicon-pulse" height="16" 
version="1.1" viewBox="0 0 14 16" width="14"><path d="M11.5 8L8.8 5.4 6.6 8.5 
5.5 1.6 2.38 8H0V10h3.6L4.5 8.2l0.9 5.4L9 8.5l1.6 1.5H14V8H11.5z"></path></svg>
-    Pulse
-</a>
-  <a href="/jline/jline2/graphs" class="js-selected-navigation-item 
reponav-item" data-selected-links="repo_graphs repo_contributors 
/jline/jline2/graphs">
-    <svg aria-hidden="true" class="octicon octicon-graph" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path d="M16 14v1H0V0h1v14h15z 
m-11-1H3V8h2v5z m4 0H7V3h2v10z m4 0H11V6h2v7z"></path></svg>
-    Graphs
-</a>
-
-</nav>
-
-  </div>
-</div>
-
-<div class="container new-discussion-timeline experiment-repo-nav">
-  <div class="repository-content">
-
-    
-
-<a 
href="/jline/jline2/blob/11a3808f302b945d0cc424536299a9c96ccc996f/LICENSE.txt" 
class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>
-
-<!-- blob contrib key: blob_contributors:v21:867b3fde20872fa09c2b14d3375ca729 
-->
-
-<div class="file-navigation js-zeroclipboard-container">
-  
-<div class="select-menu js-menu-container js-select-menu left">
-  <button class="btn btn-sm select-menu-button js-menu-target css-truncate" 
data-hotkey="w"
-    title="master"
-    type="button" aria-label="Switch branches or tags" tabindex="0" 
aria-haspopup="true">
-    <i>Branch:</i>
-    <span class="js-select-button css-truncate-target">master</span>
-  </button>
-
-  <div class="select-menu-modal-holder js-menu-content 
js-navigation-container" data-pjax aria-hidden="true">
-
-    <div class="select-menu-modal">
-      <div class="select-menu-header">
-        <svg aria-label="Close" class="octicon octicon-x js-menu-close" 
height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path 
d="M7.48 8l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75-1.48-1.48 3.75-3.75L0.77 
4.25l1.48-1.48 3.75 3.75 3.75-3.75 1.48 1.48-3.75 3.75z"></path></svg>
-        <span class="select-menu-title">Switch branches/tags</span>
-      </div>
-
-      <div class="select-menu-filters">
-        <div class="select-menu-text-filter">
-          <input type="text" aria-label="Filter branches/tags" 
id="context-commitish-filter-field" class="form-control js-filterable-field 
js-navigation-enable" placeholder="Filter branches/tags">
-        </div>
-        <div class="select-menu-tabs">
-          <ul>
-            <li class="select-menu-tab">
-              <a href="#" data-tab-filter="branches" 
data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" 
role="tab">Branches</a>
-            </li>
-            <li class="select-menu-tab">
-              <a href="#" data-tab-filter="tags" data-filter-placeholder="Find 
a tag…" class="js-select-menu-tab" role="tab">Tags</a>
-            </li>
-          </ul>
-        </div>
-      </div>
-
-      <div class="select-menu-list select-menu-tab-bucket 
js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
-
-        <div data-filterable-for="context-commitish-filter-field" 
data-filterable-type="substring">
-
-
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-               href="/jline/jline2/blob/consistent-license-headers/LICENSE.txt"
-               data-name="consistent-license-headers"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="consistent-license-headers">
-                consistent-license-headers
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-               href="/jline/jline2/blob/gh-pages/LICENSE.txt"
-               data-name="gh-pages"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="gh-pages">
-                gh-pages
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-               href="/jline/jline2/blob/jline3/LICENSE.txt"
-               data-name="jline3"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="jline3">
-                jline3
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open 
selected"
-               href="/jline/jline2/blob/master/LICENSE.txt"
-               data-name="master"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="master">
-                master
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-               href="/jline/jline2/blob/non_bmp_characters/LICENSE.txt"
-               data-name="non_bmp_characters"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="non_bmp_characters">
-                non_bmp_characters
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-               href="/jline/jline2/blob/vi-cleanup/LICENSE.txt"
-               data-name="vi-cleanup"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="vi-cleanup">
-                vi-cleanup
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-               href="/jline/jline2/blob/vi-search-fix/LICENSE.txt"
-               data-name="vi-search-fix"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target 
js-select-menu-filter-text" title="vi-search-fix">
-                vi-search-fix
-              </span>
-            </a>
-        </div>
-
-          <div class="select-menu-no-results">Nothing to show</div>
-      </div>
-
-      <div class="select-menu-list select-menu-tab-bucket 
js-select-menu-tab-bucket" data-tab-filter="tags">
-        <div data-filterable-for="context-commitish-filter-field" 
data-filterable-type="substring">
-
-
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.14.1/LICENSE.txt"
-              data-name="jline-2.14.1"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.14.1">
-                jline-2.14.1
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.14/LICENSE.txt"
-              data-name="jline-2.14"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.14">
-                jline-2.14
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.13/LICENSE.txt"
-              data-name="jline-2.13"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.13">
-                jline-2.13
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.12.1/LICENSE.txt"
-              data-name="jline-2.12.1"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.12.1">
-                jline-2.12.1
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.12/LICENSE.txt"
-              data-name="jline-2.12"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.12">
-                jline-2.12
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.11/LICENSE.txt"
-              data-name="jline-2.11"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.11">
-                jline-2.11
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.10/LICENSE.txt"
-              data-name="jline-2.10"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.10">
-                jline-2.10
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.9/LICENSE.txt"
-              data-name="jline-2.9"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.9">
-                jline-2.9
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.8/LICENSE.txt"
-              data-name="jline-2.8"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.8">
-                jline-2.8
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.7/LICENSE.txt"
-              data-name="jline-2.7"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.7">
-                jline-2.7
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.6/LICENSE.txt"
-              data-name="jline-2.6"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.6">
-                jline-2.6
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.5/LICENSE.txt"
-              data-name="jline-2.5"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.5">
-                jline-2.5
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.4/LICENSE.txt"
-              data-name="jline-2.4"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.4">
-                jline-2.4
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.3/LICENSE.txt"
-              data-name="jline-2.3"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.3">
-                jline-2.3
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.2.1/LICENSE.txt"
-              data-name="jline-2.2.1"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.2.1">
-                jline-2.2.1
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.1/LICENSE.txt"
-              data-name="jline-2.1"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.1">
-                jline-2.1
-              </span>
-            </a>
-            <a class="select-menu-item js-navigation-item js-navigation-open "
-              href="/jline/jline2/tree/jline-2.0/LICENSE.txt"
-              data-name="jline-2.0"
-              data-skip-pjax="true"
-              rel="nofollow">
-              <svg aria-hidden="true" class="octicon octicon-check 
select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" 
width="12"><path d="M12 5L4 13 0 9l1.5-1.5 2.5 2.5 6.5-6.5 1.5 
1.5z"></path></svg>
-              <span class="select-menu-item-text css-truncate-target" 
title="jline-2.0">
-                jline-2.0
-              </span>
-            </a>
-        </div>
-
-        <div class="select-menu-no-results">Nothing to show</div>
-      </div>
-
-    </div>
-  </div>
-</div>
-
-  <div class="btn-group right">
-    <a href="/jline/jline2/find/master"
-          class="js-pjax-capture-input btn btn-sm"
-          data-pjax
-          data-hotkey="t">
-      Find file
-    </a>
-    <button aria-label="Copy file path to clipboard" class="js-zeroclipboard 
btn btn-sm zeroclipboard-button tooltipped tooltipped-s" 
data-copied-hint="Copied!" type="button">Copy path</button>
-  </div>
-  <div class="breadcrumb js-zeroclipboard-target">
-    <span class="repo-root js-repo-root"><span class="js-path-segment"><a 
href="/jline/jline2"><span>jline2</span></a></span></span><span 
class="separator">/</span><strong class="final-path">LICENSE.txt</strong>
-  </div>
-</div>
-
-
-  <div class="commit-tease">
-      <span class="right">
-        <a class="commit-tease-sha" 
href="/jline/jline2/commit/f9b8398fa92b7de099ab9dd27b83b86239cc0516" data-pjax>
-          f9b8398
-        </a>
-        <time datetime="2016-03-14T10:57:48Z" is="relative-time">Mar 14, 
2016</time>
-      </span>
-      <div>
-        <img alt="@gnodet" class="avatar" height="20" 
src="https://avatars2.githubusercontent.com/u/84022?v=3&amp;s=40"; width="20" />
-        <a href="/gnodet" class="user-mention" rel="contributor">gnodet</a>
-          <a 
href="/jline/jline2/commit/f9b8398fa92b7de099ab9dd27b83b86239cc0516" 
class="message" data-pjax="true" title="Update copyright">Update copyright</a>
-      </div>
-
-    <div class="commit-tease-contributors">
-      <button type="button" class="btn-link muted-link contributors-toggle" 
data-facebox="#blob_contributors_box">
-        <strong>2</strong>
-         contributors
-      </button>
-          <a class="avatar-link tooltipped tooltipped-s" aria-label="gnodet" 
href="/jline/jline2/commits/master/LICENSE.txt?author=gnodet"><img 
alt="@gnodet" class="avatar" height="20" 
src="https://avatars2.githubusercontent.com/u/84022?v=3&amp;s=40"; width="20" /> 
</a>
-    <a class="avatar-link tooltipped tooltipped-s" aria-label="jdillon" 
href="/jline/jline2/commits/master/LICENSE.txt?author=jdillon"><img 
alt="@jdillon" class="avatar" height="20" 
src="https://avatars2.githubusercontent.com/u/20114?v=3&amp;s=40"; width="20" /> 
</a>
-
-
-    </div>
-
-    <div id="blob_contributors_box" style="display:none">
-      <h2 class="facebox-header" data-facebox-id="facebox-header">Users who 
have contributed to this file</h2>
-      <ul class="facebox-user-list" data-facebox-id="facebox-description">
-          <li class="facebox-user-list-item">
-            <img alt="@gnodet" height="24" 
src="https://avatars0.githubusercontent.com/u/84022?v=3&amp;s=48"; width="24" />
-            <a href="/gnodet">gnodet</a>
-          </li>
-          <li class="facebox-user-list-item">
-            <img alt="@jdillon" height="24" 
src="https://avatars0.githubusercontent.com/u/20114?v=3&amp;s=48"; width="24" />
-            <a href="/jdillon">jdillon</a>
-          </li>
-      </ul>
-    </div>
-  </div>
-
-<div class="file">
-  <div class="file-header">
-  <div class="file-actions">
-
-    <div class="btn-group">
-      <a href="/jline/jline2/raw/master/LICENSE.txt" class="btn btn-sm " 
id="raw-url">Raw</a>
-        <a href="/jline/jline2/blame/master/LICENSE.txt" class="btn btn-sm 
js-update-url-with-hash">Blame</a>
-      <a href="/jline/jline2/commits/master/LICENSE.txt" class="btn btn-sm " 
rel="nofollow">History</a>
-    </div>
-
-
-        <button type="button" class="btn-octicon disabled tooltipped 
tooltipped-nw"
-          aria-label="You must be signed in to make or propose changes">
-          <svg aria-hidden="true" class="octicon octicon-pencil" height="16" 
version="1.1" viewBox="0 0 14 16" width="14"><path d="M0 12v3h3l8-8-3-3L0 12z 
m3 2H1V12h1v1h1v1z m10.3-9.3l-1.3 1.3-3-3 1.3-1.3c0.39-0.39 1.02-0.39 1.41 
0l1.59 1.59c0.39 0.39 0.39 1.02 0 1.41z"></path></svg>
-        </button>
-        <button type="button" class="btn-octicon btn-octicon-danger disabled 
tooltipped tooltipped-nw"
-          aria-label="You must be signed in to make or propose changes">
-          <svg aria-hidden="true" class="octicon octicon-trashcan" height="16" 
version="1.1" viewBox="0 0 12 16" width="12"><path d="M10 
2H8c0-0.55-0.45-1-1-1H4c-0.55 0-1 0.45-1 1H1c-0.55 0-1 0.45-1 1v1c0 0.55 0.45 1 
1 1v9c0 0.55 0.45 1 1 1h7c0.55 0 1-0.45 1-1V5c0.55 0 1-0.45 
1-1v-1c0-0.55-0.45-1-1-1z m-1 12H2V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9z 
m1-10H1v-1h9v1z"></path></svg>
-        </button>
-  </div>
-
-  <div class="file-info">
-      36 lines (28 sloc)
-      <span class="file-info-divider"></span>
-    1.5 KB
-  </div>
-</div>
-
-  
-
-  <div itemprop="text" class="blob-wrapper data type-text">
-      <table class="highlight tab-size js-file-line-container" 
data-tab-size="8">
-      <tr>
-        <td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
-        <td id="LC1" class="blob-code blob-code-inner js-file-line">Copyright 
(c) 2002-2016, the original author or authors.</td>
-      </tr>
-      <tr>
-        <td id="L2" class="blob-num js-line-number" data-line-number="2"></td>
-        <td id="LC2" class="blob-code blob-code-inner js-file-line">All rights 
reserved.</td>
-      </tr>
-      <tr>
-        <td id="L3" class="blob-num js-line-number" data-line-number="3"></td>
-        <td id="LC3" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L4" class="blob-num js-line-number" data-line-number="4"></td>
-        <td id="LC4" class="blob-code blob-code-inner 
js-file-line">http://www.opensource.org/licenses/bsd-license.php</td>
-      </tr>
-      <tr>
-        <td id="L5" class="blob-num js-line-number" data-line-number="5"></td>
-        <td id="LC5" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L6" class="blob-num js-line-number" data-line-number="6"></td>
-        <td id="LC6" class="blob-code blob-code-inner 
js-file-line">Redistribution and use in source and binary forms, with or</td>
-      </tr>
-      <tr>
-        <td id="L7" class="blob-num js-line-number" data-line-number="7"></td>
-        <td id="LC7" class="blob-code blob-code-inner js-file-line">without 
modification, are permitted provided that the following</td>
-      </tr>
-      <tr>
-        <td id="L8" class="blob-num js-line-number" data-line-number="8"></td>
-        <td id="LC8" class="blob-code blob-code-inner js-file-line">conditions 
are met:</td>
-      </tr>
-      <tr>
-        <td id="L9" class="blob-num js-line-number" data-line-number="9"></td>
-        <td id="LC9" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L10" class="blob-num js-line-number" 
data-line-number="10"></td>
-        <td id="LC10" class="blob-code blob-code-inner 
js-file-line">Redistributions of source code must retain the above 
copyright</td>
-      </tr>
-      <tr>
-        <td id="L11" class="blob-num js-line-number" 
data-line-number="11"></td>
-        <td id="LC11" class="blob-code blob-code-inner js-file-line">notice, 
this list of conditions and the following disclaimer.</td>
-      </tr>
-      <tr>
-        <td id="L12" class="blob-num js-line-number" 
data-line-number="12"></td>
-        <td id="LC12" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L13" class="blob-num js-line-number" 
data-line-number="13"></td>
-        <td id="LC13" class="blob-code blob-code-inner 
js-file-line">Redistributions in binary form must reproduce the above 
copyright</td>
-      </tr>
-      <tr>
-        <td id="L14" class="blob-num js-line-number" 
data-line-number="14"></td>
-        <td id="LC14" class="blob-code blob-code-inner js-file-line">notice, 
this list of conditions and the following disclaimer</td>
-      </tr>
-      <tr>
-        <td id="L15" class="blob-num js-line-number" 
data-line-number="15"></td>
-        <td id="LC15" class="blob-code blob-code-inner js-file-line">in the 
documentation and/or other materials provided with</td>
-      </tr>
-      <tr>
-        <td id="L16" class="blob-num js-line-number" 
data-line-number="16"></td>
-        <td id="LC16" class="blob-code blob-code-inner js-file-line">the 
distribution.</td>
-      </tr>
-      <tr>
-        <td id="L17" class="blob-num js-line-number" 
data-line-number="17"></td>
-        <td id="LC17" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L18" class="blob-num js-line-number" 
data-line-number="18"></td>
-        <td id="LC18" class="blob-code blob-code-inner js-file-line">Neither 
the name of JLine nor the names of its contributors</td>
-      </tr>
-      <tr>
-        <td id="L19" class="blob-num js-line-number" 
data-line-number="19"></td>
-        <td id="LC19" class="blob-code blob-code-inner js-file-line">may be 
used to endorse or promote products derived from this</td>
-      </tr>
-      <tr>
-        <td id="L20" class="blob-num js-line-number" 
data-line-number="20"></td>
-        <td id="LC20" class="blob-code blob-code-inner js-file-line">software 
without specific prior written permission.</td>
-      </tr>
-      <tr>
-        <td id="L21" class="blob-num js-line-number" 
data-line-number="21"></td>
-        <td id="LC21" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L22" class="blob-num js-line-number" 
data-line-number="22"></td>
-        <td id="LC22" class="blob-code blob-code-inner js-file-line">THIS 
SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</td>
-      </tr>
-      <tr>
-        <td id="L23" class="blob-num js-line-number" 
data-line-number="23"></td>
-        <td id="LC23" class="blob-code blob-code-inner js-file-line">&quot;AS 
IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,</td>
-      </tr>
-      <tr>
-        <td id="L24" class="blob-num js-line-number" 
data-line-number="24"></td>
-        <td id="LC24" class="blob-code blob-code-inner js-file-line">BUT NOT 
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY</td>
-      </tr>
-      <tr>
-        <td id="L25" class="blob-num js-line-number" 
data-line-number="25"></td>
-        <td id="LC25" class="blob-code blob-code-inner js-file-line">AND 
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO</td>
-      </tr>
-      <tr>
-        <td id="L26" class="blob-num js-line-number" 
data-line-number="26"></td>
-        <td id="LC26" class="blob-code blob-code-inner js-file-line">EVENT 
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE</td>
-      </tr>
-      <tr>
-        <td id="L27" class="blob-num js-line-number" 
data-line-number="27"></td>
-        <td id="LC27" class="blob-code blob-code-inner js-file-line">FOR ANY 
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,</td>
-      </tr>
-      <tr>
-        <td id="L28" class="blob-num js-line-number" 
data-line-number="28"></td>
-        <td id="LC28" class="blob-code blob-code-inner js-file-line">OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</td>
-      </tr>
-      <tr>
-        <td id="L29" class="blob-num js-line-number" 
data-line-number="29"></td>
-        <td id="LC29" class="blob-code blob-code-inner 
js-file-line">PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</td>
-      </tr>
-      <tr>
-        <td id="L30" class="blob-num js-line-number" 
data-line-number="30"></td>
-        <td id="LC30" class="blob-code blob-code-inner js-file-line">DATA, OR 
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED</td>
-      </tr>
-      <tr>
-        <td id="L31" class="blob-num js-line-number" 
data-line-number="31"></td>
-        <td id="LC31" class="blob-code blob-code-inner js-file-line">AND ON 
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</td>
-      </tr>
-      <tr>
-        <td id="L32" class="blob-num js-line-number" 
data-line-number="32"></td>
-        <td id="LC32" class="blob-code blob-code-inner 
js-file-line">LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING</td>
-      </tr>
-      <tr>
-        <td id="L33" class="blob-num js-line-number" 
data-line-number="33"></td>
-        <td id="LC33" class="blob-code blob-code-inner js-file-line">IN ANY 
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED</td>
-      </tr>
-      <tr>
-        <td id="L34" class="blob-num js-line-number" 
data-line-number="34"></td>
-        <td id="LC34" class="blob-code blob-code-inner js-file-line">OF THE 
POSSIBILITY OF SUCH DAMAGE.</td>
-      </tr>
-      <tr>
-        <td id="L35" class="blob-num js-line-number" 
data-line-number="35"></td>
-        <td id="LC35" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-</table>
-
-  </div>
-
-</div>
-
-<button type="button" data-facebox="#jump-to-line" 
data-facebox-class="linejump" data-hotkey="l" class="hidden">Jump to 
Line</button>
-<div id="jump-to-line" style="display:none">
-  <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="" 
class="js-jump-to-line-form" method="get"><div 
style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" 
value="&#x2713;" /></div>
-    <input class="form-control linejump-input js-jump-to-line-field" 
type="text" placeholder="Jump to line&hellip;" aria-label="Jump to line" 
autofocus>
-    <button type="submit" class="btn">Go</button>
-</form></div>
-
-  </div>
-  <div class="modal-backdrop"></div>
-</div>
-
-
-    </div>
-  </div>
-
-    </div>
-
-        <div class="container site-footer-container">
-  <div class="site-footer" role="contentinfo">
-    <ul class="site-footer-links right">
-        <li><a href="https://status.github.com/"; data-ga-click="Footer, go to 
status, text:status">Status</a></li>
-      <li><a href="https://developer.github.com"; data-ga-click="Footer, go to 
api, text:api">API</a></li>
-      <li><a href="https://training.github.com"; data-ga-click="Footer, go to 
training, text:training">Training</a></li>
-      <li><a href="https://shop.github.com"; data-ga-click="Footer, go to shop, 
text:shop">Shop</a></li>
-        <li><a href="https://github.com/blog"; data-ga-click="Footer, go to 
blog, text:blog">Blog</a></li>
-        <li><a href="https://github.com/about"; data-ga-click="Footer, go to 
about, text:about">About</a></li>
-
-    </ul>
-
-    <a href="https://github.com"; aria-label="Homepage" 
class="site-footer-mark">
-      <svg aria-hidden="true" class="octicon octicon-mark-github" height="24" 
title="GitHub " version="1.1" viewBox="0 0 16 16" width="24"><path d="M8 0C3.58 
0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59 0.4 0.07 0.55-0.17 0.55-0.38 
0-0.19-0.01-0.82-0.01-1.49-2.01 
0.37-2.53-0.49-2.69-0.94-0.09-0.23-0.48-0.94-0.82-1.13-0.28-0.15-0.68-0.52-0.01-0.53
 0.63-0.01 1.08 0.58 1.23 0.82 0.72 1.21 1.87 0.87 2.33 0.66 0.07-0.52 
0.28-0.87 0.51-1.07-1.78-0.2-3.64-0.89-3.64-3.95 0-0.87 0.31-1.59 0.82-2.15-0. 
[...]
-</a>
-    <ul class="site-footer-links">
-      <li>&copy; 2016 <span title="0.09880s from 
github-fe137-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
-        <li><a href="https://github.com/site/terms"; data-ga-click="Footer, go 
to terms, text:terms">Terms</a></li>
-        <li><a href="https://github.com/site/privacy"; data-ga-click="Footer, 
go to privacy, text:privacy">Privacy</a></li>
-        <li><a href="https://github.com/security"; data-ga-click="Footer, go to 
security, text:security">Security</a></li>
-        <li><a href="https://github.com/contact"; data-ga-click="Footer, go to 
contact, text:contact">Contact</a></li>
-        <li><a href="https://help.github.com"; data-ga-click="Footer, go to 
help, text:help">Help</a></li>
-    </ul>
-  </div>
-</div>
-
-
-
-    
-    
-
-    <div id="ajax-error-message" class="ajax-error-message flash flash-error">
-      <svg aria-hidden="true" class="octicon octicon-alert" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path d="M15.72 
12.5l-6.85-11.98C8.69 0.21 8.36 0.02 8 0.02s-0.69 0.19-0.87 0.5l-6.85 
11.98c-0.18 0.31-0.18 0.69 0 1C0.47 13.81 0.8 14 1.15 14h13.7c0.36 0 0.69-0.19 
0.86-0.5S15.89 12.81 15.72 12.5zM9 12H7V10h2V12zM9 9H7V5h2V9z"></path></svg>
-      <button type="button" class="flash-close js-flash-close 
js-ajax-error-dismiss" aria-label="Dismiss error">
-        <svg aria-hidden="true" class="octicon octicon-x" height="16" 
version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 
1.48-3.75-3.75-3.75 3.75-1.48-1.48 3.75-3.75L0.77 4.25l1.48-1.48 3.75 3.75 
3.75-3.75 1.48 1.48-3.75 3.75z"></path></svg>
-      </button>
-      Something went wrong with that request. Please try again.
-    </div>
-
-
-      <script crossorigin="anonymous" 
src="https://assets-cdn.github.com/assets/compat-7db58f8b7b91111107fac755dd8b178fe7db0f209ced51fc339c446ad3f8da2b.js";></script>
-      <script crossorigin="anonymous" 
src="https://assets-cdn.github.com/assets/frameworks-9eb0ddac6d1c94c56980360abcade2abb10d27d7880f7ee7bf6640c2c2a06fc8.js";></script>
-      <script async="async" crossorigin="anonymous" 
src="https://assets-cdn.github.com/assets/github-4ddbe43ff9bf343ea4e58a83f44f72427d4c0e030722f47eb6ea4d231abfa161.js";></script>
-      
-      
-      
-      
-      
-    <div class="js-stale-session-flash stale-session-flash flash flash-warn 
flash-banner hidden">
-      <svg aria-hidden="true" class="octicon octicon-alert" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path d="M15.72 
12.5l-6.85-11.98C8.69 0.21 8.36 0.02 8 0.02s-0.69 0.19-0.87 0.5l-6.85 
11.98c-0.18 0.31-0.18 0.69 0 1C0.47 13.81 0.8 14 1.15 14h13.7c0.36 0 0.69-0.19 
0.86-0.5S15.89 12.81 15.72 12.5zM9 12H7V10h2V12zM9 9H7V5h2V9z"></path></svg>
-      <span class="signed-in-tab-flash">You signed in with another tab or 
window. <a href="">Reload</a> to refresh your session.</span>
-      <span class="signed-out-tab-flash">You signed out in another tab or 
window. <a href="">Reload</a> to refresh your session.</span>
-    </div>
-    <div class="facebox" id="facebox" style="display:none;">
-  <div class="facebox-popup">
-    <div class="facebox-content" role="dialog" 
aria-labelledby="facebox-header" aria-describedby="facebox-description">
-    </div>
-    <button type="button" class="facebox-close js-facebox-close" 
aria-label="Close modal">
-      <svg aria-hidden="true" class="octicon octicon-x" height="16" 
version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 
1.48-3.75-3.75-3.75 3.75-1.48-1.48 3.75-3.75L0.77 4.25l1.48-1.48 3.75 3.75 
3.75-3.75 1.48 1.48-3.75 3.75z"></path></svg>
-    </button>
-  </div>
-</div>
-
-  </body>
-</html>
-
diff --git a/etc/legal/licenses/LICENSE-scala-stm.txt 
b/etc/legal/licenses/LICENSE-scala-stm.txt
deleted file mode 100644
index 1b7a9a47..00000000
--- a/etc/legal/licenses/LICENSE-scala-stm.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-All of the source code and documentation that has been developed by the Scala 
STM Expert Group is available under a modified-BSD license.
-Copyright (c) 2009-2012 Stanford University, unless otherwise specified.
-All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Stanford University nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL STANFORD UNIVERSITY BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/etc/legal/licenses/LICENSE-scalaz.txt 
b/etc/legal/licenses/LICENSE-scalaz.txt
deleted file mode 100644
index e6ce8436..00000000
--- a/etc/legal/licenses/LICENSE-scalaz.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright (c) 2009-2014 Tony Morris, Runar Bjarnason, Tom Adams, Kristian 
Domagala, Brad Clow, Ricky Clarkson, Paul Chiusano, Trygve Laugstøl, Nick 
Partridge, Jason Zaugg
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git 
a/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala
 
b/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala
index c3d9d1d8..fb88aad5 100644
--- 
a/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala
+++ 
b/kernel-api/src/main/scala/org/apache/toree/dependencies/CoursierDependencyDownloader.scala
@@ -16,21 +16,23 @@
  */
 package org.apache.toree.dependencies
 
-import java.io.{File, FileInputStream, PrintStream}
-import java.net.{URI, URL}
-import java.util.Properties
-import java.util.concurrent.ConcurrentHashMap
-import coursier.core.Authentication
-import coursier.Cache.Logger
+import coursier.core.{Authentication, Configuration, Repository}
 import coursier.Dependency
-import coursier.core.Repository
-import coursier.core.Resolution.ModuleVersion
 import coursier.ivy.{IvyRepository, IvyXml}
+import coursier.util.{Gather, Task}
+import coursier.cache.{ArtifactError, CacheLogger, FileCache}
 import coursier.maven.MavenRepository
+import coursier.util.Task.sync
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver
+
+import java.io.{File, FileInputStream, PrintStream}
+import java.lang.{Long => JLong, Double => JDouble}
+import java.net.{URI, URL}
+import java.util.Properties
+import java.util.concurrent.ConcurrentHashMap
+import java.util.concurrent.atomic.AtomicLong
+import scala.concurrent.ExecutionContext.Implicits.global
 import scala.util.Try
-import scalaz.\/
-import scalaz.concurrent.Task
 
 /**
  * Represents a dependency downloader for jars that uses Coursier underneath.
@@ -83,23 +85,26 @@ class CoursierDependencyDownloader extends 
DependencyDownloader {
     import coursier._
 
     // Grab exclusions using base dependencies (always exclude scala lang)
-    val exclusions: Set[(String, String)] = (if (excludeBaseDependencies) {
+    val exclusions: Set[(Organization, ModuleName)] = (if 
(excludeBaseDependencies) {
       getBaseDependencies.map(_.module).map(m => (m.organization, m.name))
-    } else Nil).toSet ++ Set(("org.scala-lang", "*"), 
("org.scala-lang.modules", "*")) ++ excludes
+    } else Nil).toSet ++
+      (Set(("org.scala-lang", "*"), ("org.scala-lang.modules", "*")) ++ 
excludes)
+        .map { case (org, module) => Organization(org) -> ModuleName(module) }
 
     // Mark dependency that we want to download
-    val start = Resolution(Set(
-      Dependency(
-        module = Module(organization = groupId, name = artifactId),
-        version = version,
-        transitive = transitive,
-        exclusions = exclusions, // NOTE: Source/Javadoc not downloaded by 
default
-        configuration = configuration.getOrElse("default"),
-        attributes = Attributes(
-          artifactType.getOrElse(""),
-          artifactClassifier.getOrElse("")
-        )
-      )
+    val start = Resolution(Seq(
+      Dependency(Module(Organization(groupId), ModuleName(artifactId)), 
version)
+        .withTransitive(transitive)
+        .withExclusions(exclusions) // NOTE: Source/Javadoc not downloaded by 
default
+        .withConfiguration {
+          configuration.map(c => new 
Configuration(c)).getOrElse(Configuration.default)
+        }
+        .withAttributes {
+          Attributes(
+            artifactType.map(t => Type(t)).getOrElse(Type.jar),
+            artifactClassifier.map(c => 
Classifier(c)).getOrElse(Classifier.empty)
+          )
+        }
     ))
 
     printStream.println(s"Marking $groupId:$artifactId:$version for download")
@@ -112,10 +117,15 @@ class CoursierDependencyDownloader extends 
DependencyDownloader {
 
     // Build list of locations to fetch dependencies
     val fetchLocations = Seq(ivy2Cache(localDirectory)) ++ allRepositories
-    val fetch = Fetch.from(
+
+    val localCache = FileCache()
+      .withLocation(downloadLocations)
+      .withLogger(new DownloadLogger(verbose, trace))
+
+    val fetch = ResolutionProcess.fetch(
       fetchLocations,
-      Cache.fetch(downloadLocations, logger = Some(new DownloadLogger(verbose, 
trace)))
-    )
+      localCache.fetch
+    )(Task.gather)
 
     val fetchUris = localDirectory +: repositoriesToURIs(allRepositories)
     if (verbose) {    
@@ -123,10 +133,10 @@ class CoursierDependencyDownloader extends 
DependencyDownloader {
       printStream.println(s"-> ${fetchUris.mkString("\n-> ")}")
     }
     // Verify locations where we will download dependencies
-    val resolution = start.process.run(fetch).unsafePerformSync
+    val resolution = start.process.run(fetch).unsafeRun()
 
     // Report any resolution errors
-    val errors: Seq[(ModuleVersion, Seq[String])] = resolution.metadataErrors
+    val errors: Seq[(ModuleVersion, Seq[String])] = resolution.errors
     errors.foreach { case (dep, e) =>
       printStream.println(s"-> Failed to resolve 
${dep._1.toString()}:${dep._2}")
       e.foreach(s => printStream.println(s"    -> $s"))
@@ -136,12 +146,10 @@ class CoursierDependencyDownloader extends 
DependencyDownloader {
     if (errors.nonEmpty && !ignoreResolutionErrors) return Nil
 
     // Perform task of downloading dependencies
-    val localArtifacts: Seq[FileError \/ File] = Task.gatherUnordered(
-      resolution.artifacts.map(a => Cache.file(
-        artifact = a,
-        cache = downloadLocations,
-        logger = Some(new DownloadLogger(verbose, trace))
-      ).run)).unsafePerformSync
+    val localArtifacts: Seq[Either[ArtifactError, File]] = Gather[Task].gather(
+      resolution.artifacts().map(localCache.file(_).run)
+    ).unsafeRun()
+
 
     // Print any errors in retrieving dependencies
     localArtifacts.flatMap(_.swap.toOption).map(_.message)
@@ -220,37 +228,39 @@ class CoursierDependencyDownloader extends 
DependencyDownloader {
     true
   }
 
-  private class DownloadLogger(
-    private val verbose: Boolean,
-    private val trace: Boolean
-  ) extends Logger {
+  private class DownloadLogger(verbose: Boolean, trace: Boolean) extends 
CacheLogger {
     import scala.collection.JavaConverters._
     private val downloadId = new ConcurrentHashMap[String, String]().asScala
-    private val downloadFile = new ConcurrentHashMap[String, File]().asScala
+    private val downloadFile = new ConcurrentHashMap[String, String]().asScala
     private val downloadAmount = new ConcurrentHashMap[String, Long]().asScala
     private val downloadTotal = new ConcurrentHashMap[String, Long]().asScala
+    private val counter = new AtomicLong(0)
+    private def nextId(): Long = counter.getAndIncrement()
 
-    override def foundLocally(url: String, file: File): Unit = {
+    override def foundLocally(url: String): Unit = {
+      val file = new File(new URL(url).getPath).getName
+      downloadFile.put(url, file)
       val id = downloadId.getOrElse(url, url)
-      val f = s"(${downloadFile.get(url).map(_.getName).getOrElse("")})"
-      if (verbose) printStream.println(s"=> $id: Found at 
${file.getAbsolutePath}")
+      val f = s"(${downloadFile.getOrElse(url, "")})"
+      if (verbose) printStream.println(s"=> $id $f: Found at local")
     }
 
-    override def downloadingArtifact(url: String, file: File): Unit = {
-      downloadId.put(url, nextId())
+    override def downloadingArtifact(url: String): Unit = {
+      downloadId.put(url, nextId().toString)
+      val file = new File(new URL(url).getPath).getName
+      downloadFile.put(url, file)
       val id = downloadId.getOrElse(url, url)
-      val f = s"(${downloadFile.get(url).map(_.getName).getOrElse("")})"
+      val f = s"(${downloadFile.getOrElse(url, "")})"
 
       if (verbose) printStream.println(s"=> $id $f: Downloading $url")
-
-      downloadFile.put(url, file)
     }
 
-    override def downloadLength(url: String, length: Long): Unit = {
+    override def downloadLength(
+       url: String,totalLength: Long, alreadyDownloaded: Long, watching: 
Boolean): Unit = {
       val id = downloadId.getOrElse(url, url)
-      val f = s"(${downloadFile.get(url).map(_.getName).getOrElse("")})"
-      if (trace) printStream.println(s"===> $id $f: Is $length total bytes")
-      downloadTotal.put(url, length)
+      val f = s"(${downloadFile.getOrElse(url, "")})"
+      if (trace) printStream.println(s"===> $id $f: Is $totalLength total 
bytes")
+      downloadTotal.put(url, totalLength)
     }
 
     override def downloadProgress(url: String, downloaded: Long): Unit = {
@@ -262,29 +272,20 @@ class CoursierDependencyDownloader extends 
DependencyDownloader {
       if (trace) printStream.printf(
         "===> %s %s: Downloaded %d bytes (%.2f%%)\n",
         downloadId.getOrElse(url, url),
-        s"(${downloadFile.get(url).map(_.getName).getOrElse("")})",
-        java.lang.Long.valueOf(downloaded),
-        java.lang.Double.valueOf(percent)
+        s"(${downloadFile.getOrElse(url, "")})",
+        JLong.valueOf(downloaded),
+        JDouble.valueOf(percent)
       )
     }
 
     override def downloadedArtifact(url: String, success: Boolean): Unit = {
       if (verbose) {
         val id = downloadId.getOrElse(url, url)
-        val f = s"(${downloadFile.get(url).map(_.getName).getOrElse("")})"
+        val f = s"(${downloadFile.getOrElse(url, "")})"
         if (success) printStream.println(s"=> $id $f: Finished downloading")
         else printStream.println(s"=> $id: An error occurred while 
downloading")
       }
     }
-
-    private val nextId: () => String = (() => {
-      var counter: Long = 0
-
-      () => {
-        counter += 1
-        counter.toString
-      }
-    })()
   }
 
   /**
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
index 231136f5..e873a48e 100644
--- a/project/Dependencies.scala
+++ b/project/Dependencies.scala
@@ -32,7 +32,7 @@ object Dependencies {
 
   val config = "com.typesafe" % "config" % "1.4.3" // Apache v2
 
-  val coursierVersion = "1.0.3"
+  val coursierVersion = "2.0.0"
   val coursier = "io.get-coursier" %% "coursier" % coursierVersion // Apache v2
   val coursierCache = "io.get-coursier" %% "coursier-cache" % coursierVersion 
// Apache v2
 

Reply via email to