Update deps

[?]
Dec 30, 2018, 3:20 AM
IK3YDPTYYB4IQR3JFFXFLPGWTBG4HE4OCMKJ447RK72OYESHOMRQC

Dependencies

  • [2] H7R7Y3FQ Use new processing code to wait online
  • [3] EOHEZXX3 Move request processing to structure
  • [4] 2L3JHRUL Create separate functions to process incoming XMPP stanzas
  • [5] AGIW6YR3 Use shared future for signal everywhere
  • [6] O2GM5J4F Don't split xmpp receiving and sending
  • [7] QWE26TMV update deps
  • [8] TDOR5XQU Accept destination
  • [9] FDHRCKH5 Unneded Box
  • [10] XGP44R5H Rework stopping xmpp connection
  • [11] X6L47BHQ Use different structure for established xmpp connection
  • [12] NDDQQP2P Update deps
  • [13] 5OBTKGDL Update deps
  • [14] BTOZT4JP Use failure
  • [15] FV6BJ5K6 Send self-presence and store account info in Rc so it willbe used in some future in parallel
  • [16] PBRUH4BJ Rename optional XmppConnection to MaybeXmppConnection
  • [17] FVVPKFTL Initial commit
  • [18] OGMBXBKP Move online to XmppConnection
  • [19] VS6AHRWI Move XMPP to separate dir
  • [20] ZI4GJ72V Add message to xmpp command
  • [21] 3GEU7TC7 Welcome to 2018!
  • [22] 5A5UVGNM Move receiver closing logic out of xmpp processing

Change contents

  • edit in src/xmpp/mod.rs at line 9
    [3.434][3.0:34](),[3.34][3.0:72]()
    pub struct MaybeXmppConnection {
    account: std::rc::Rc<config::Account>,
    inner: Option<Client>,
    }
  • replacement in src/xmpp/mod.rs at line 12
    [3.74][3.102:353]()
    inner: Client,
    }
    impl From<XmppConnection> for MaybeXmppConnection {
    fn from(from: XmppConnection) -> MaybeXmppConnection {
    MaybeXmppConnection {
    account: from.account,
    inner: Some(from.inner),
    }
    }
    [3.74]
    [3.356]
    inner: Option<(stream::SplitSink<Client>, stream::SplitStream<Client>)>,
  • replacement in src/xmpp/mod.rs at line 15
    [3.359][3.359:478](),[3.359][3.359:478](),[3.359][3.359:478]()
    impl MaybeXmppConnection {
    fn new(account: config::Account) -> MaybeXmppConnection {
    MaybeXmppConnection {
    [3.359]
    [3.479]
    impl XmppConnection {
    fn new(account: config::Account) -> XmppConnection {
    XmppConnection {
  • replacement in src/xmpp/mod.rs at line 24
    [3.554][3.354:535](),[3.535][2.0:45](),[2.45][3.572:648](),[3.572][3.572:648]()
    /// don't connect if stop_future resolved
    fn connect<F>(
    self,
    stop_future: F,
    ) -> impl Future<Item = XmppConnection, Error = failure::Error>
    where
    F: future::Future + Clone + 'static,
    <F as hyper::rt::Future>::Error: Into<failure::Error> + Send,
    {
    [3.554]
    [3.653]
    /// Error shoud be !
    fn connect<E: 'static>(self) -> impl Future<Item = Self, Error = E> {
  • replacement in src/xmpp/mod.rs at line 27
    [3.690][3.564:623]()
    let MaybeXmppConnection { account, inner } = self;
    [3.690]
    [3.744]
    let XmppConnection { account, inner } = self;
  • replacement in src/xmpp/mod.rs at line 30
    [3.782][3.649:769]()
    Box::new(future::ok(XmppConnection { account, inner }))
    as Box<Future<Item = _, Error = _>>
    [3.782]
    [3.944]
    Box::new(future::ok(XmppConnection {
    account,
    inner: Some(inner),
    })) as Box<Future<Item = _, Error = E>>
  • replacement in src/xmpp/mod.rs at line 35
    [3.961][3.770:820](),[3.820][2.46:75](),[2.75][3.820:850](),[3.820][3.820:850](),[3.850][2.76:142](),[2.142][3.911:1391](),[3.911][3.911:1391]()
    Box::new(
    stop_future
    .clone()
    .select2(
    future::loop_fn(account, move |account| {
    info!("xmpp initialization...");
    let res_client = Client::new(&account.jid, &account.password);
    match res_client {
    Err(_e) => Box::new(future::ok(future::Loop::Continue(account)))
    as Box<Future<Item = _, Error = _>>,
    Ok(client) => {
    info!("xmpp initialized");
    [3.961]
    [3.1476]
    Box::new(future::loop_fn(account, |account| {
    info!("xmpp initialization...");
    let mut res_client = Client::new(&account.jid, &account.password);
    while let Err(e) = res_client {
    error!("Cann't init xmpp client: {}", e);
    res_client = Client::new(&account.jid, &account.password);
    }
    let client = res_client.expect("Cann't init xmpp client");
    info!("xmpp initialized");
  • replacement in src/xmpp/mod.rs at line 45
    [3.1477][3.1392:1714](),[3.1714][2.143:368](),[2.368][3.1764:2437](),[3.1764][3.1764:2437]()
    // future to wait for online
    Box::new(
    XmppConnection {
    inner: client,
    account,
    }
    .processing(XmppConnection::online, stop_future.clone())
    .map(|(xmpp, _)| xmpp)
    .map_err(|(acc, _)| acc)
    .and_then(XmppConnection::self_presence)
    .then(
    |r| match r {
    Ok(conn) => future::ok(future::Loop::Break(conn)),
    Err(acc) => future::ok(future::Loop::Continue(acc)),
    },
    ),
    )
    }
    }
    })
    .map_err(|_: ()| ()),
    )
    [3.1477]
    [3.426]
    // future to wait for online
    Self::online(client.split(), account)
    .and_then(Self::self_presence)
  • replacement in src/xmpp/mod.rs at line 49
    [3.466][3.2438:2883]()
    Ok(Either::A((_x, _b))) => future::err(format_err!("Stop XMMP connection")),
    Ok(Either::B((x, _a))) => future::ok(x),
    Err(Either::A((e, _b))) => future::err(e.into()),
    Err(Either::B((_, _a))) => {
    future::err(format_err!("Cann't initiate XMPP connection"))
    }
    }),
    )
    [3.466]
    [3.1858]
    Ok(conn) => future::ok(future::Loop::Break(conn)),
    Err(acc) => future::ok(future::Loop::Continue(acc)),
    })
    }))
  • edit in src/xmpp/mod.rs at line 55
    [3.2890][3.2890:2997]()
    }
    impl XmppConnection {
    /// base XMPP processing
    fn xmpp_processing(&mut self, _event: &Event) {}
  • replacement in src/xmpp/mod.rs at line 56
    [3.2998][3.2998:3238](),[3.3238][2.369:551](),[2.551][3.3359:3415](),[3.3359][3.3359:3415](),[3.3415][2.552:654](),[2.654][3.3460:3955](),[3.3460][3.3460:3955]()
    /// process event from xmpp stream
    /// returns from future when condition met
    /// or stop future was resolved
    fn processing<S, F, T, E>(
    self,
    stop_condition: S,
    stop_future: F,
    ) -> impl Future<
    Item = (Self, Result<Either<F, T>, failure::Error>),
    Error = (
    std::rc::Rc<config::Account>,
    Result<Either<F, T>, failure::Error>,
    ),
    >
    where
    F: Future<Item = T, Error = E>,
    E: Into<failure::Error>,
    S: FnMut(&mut Self, &Event) -> Result<bool, failure::Error>,
    {
    future::loop_fn(
    (self, stop_future, stop_condition),
    |(xmpp, stop_future, mut stop_condition)| {
    let XmppConnection { inner, account } = xmpp;
    inner.into_future().select2(stop_future).then(|r| match r {
    Ok(Either::A(((event, client), b))) => {
    if let Some(event) = event {
    let mut xmpp = XmppConnection {
    inner: client,
    [3.2998]
    [3.3955]
    /// get connection and wait for online status and set presence
    /// returns error if something went wrong
    fn online(
    (sink, stream): (stream::SplitSink<Client>, stream::SplitStream<Client>),
    account: std::rc::Rc<config::Account>,
    ) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>> {
    Box::new(future::loop_fn(
    (sink, stream, account),
    |(sink, stream, account)| {
    stream.into_future().then(|r| match r {
    Ok((event, stream)) => match event {
    Some(Event::Online) => {
    info!("Online");
    future::ok(future::Loop::Break(XmppConnection {
  • replacement in src/xmpp/mod.rs at line 71
    [3.3996][3.3996:4085](),[3.3996][3.3996:4085](),[3.4085][2.655:1157](),[2.1157][3.4373:4505](),[3.4373][3.4373:4505]()
    };
    xmpp.xmpp_processing(&event);
    match stop_condition(&mut xmpp, &event) {
    Ok(true) => {
    future::ok(future::Loop::Break((xmpp, Ok(Either::A(b)))))
    }
    Ok(false) => {
    future::ok(future::Loop::Continue((xmpp, b, stop_condition)))
    }
    Err(e) => future::err((xmpp.account, Err(e))),
    }
    } else {
    future::err((account, Ok(Either::A(b))))
    [3.3996]
    [3.4505]
    inner: Some((sink, stream)),
    }))
  • replacement in src/xmpp/mod.rs at line 74
    [3.4531][3.4531:4974](),[3.4531][3.4531:4974]()
    }
    Ok(Either::B((t, a))) => {
    if let Some(inner) = a.into_inner() {
    future::ok(future::Loop::Break((
    XmppConnection { inner, account },
    Ok(Either::B(t)),
    )))
    } else {
    future::err((account, Ok(Either::B(t))))
    [3.4531]
    [3.4974]
    Some(Event::Stanza(s)) => {
    info!("xmpp stanza: {:?}", s);
    future::ok(future::Loop::Continue((sink, stream, account)))
  • replacement in src/xmpp/mod.rs at line 78
    [3.5000][3.5000:5349](),[3.5000][3.5000:5349](),[3.5349][2.1158:1205](),[2.1205][3.5389:5454](),[3.5389][3.5389:5454](),[3.5454][2.1206:1272]()
    }
    Err(Either::A((_e, b))) => future::err((account, Ok(Either::A(b)))),
    Err(Either::B((e, a))) => {
    if let Some(inner) = a.into_inner() {
    future::ok(future::Loop::Break((
    XmppConnection { inner, account },
    Err(e.into()),
    )))
    } else {
    future::err((account, Err(e.into())))
    [3.5000]
    [3.5513]
    _ => {
    warn!("Disconnected");
    future::err(account)
  • edit in src/xmpp/mod.rs at line 82
    [3.5539]
    [3.5539]
    },
    Err((e, _)) => {
    error!("xmpp receive error: {}", e);
    future::err(account)
  • replacement in src/xmpp/mod.rs at line 89
    [3.5595][3.5595:5605](),[3.5595][3.5595:5605](),[3.5605][3.1868:1874](),[3.1868][3.1868:1874](),[3.1145][3.1874:1875](),[3.1874][3.1874:1875](),[3.2654][3.2654:2767](),[3.2767][2.1273:1761]()
    )
    }
    /// get connection and wait for online status and set presence
    /// returns error if something went wrong
    fn online(&mut self, event: &Event) -> Result<bool, failure::Error> {
    match event {
    Event::Online => {
    info!("Online!");
    Ok(true)
    }
    Event::Stanza(s) => {
    warn!("Stanza before online: {:?}", s);
    Ok(false)
    }
    _ => {
    error!("Disconnected while online");
    Err(format_err!("Disconnected while online"))
    }
    }
    [3.5595]
    [3.3349]
    ))
  • replacement in src/xmpp/mod.rs at line 94
    [3.6155][3.6155:6217]()
    let client = inner;
    use tokio::prelude::Sink;
    [3.6155]
    [3.784]
    if let Some((sink, stream)) = inner {
    use tokio::prelude::Sink;
  • replacement in src/xmpp/mod.rs at line 97
    [3.785][3.6218:7755]()
    let presence = stanzas::make_presence(&account);
    info!("Sending presence...");
    let account2 = account.clone();
    Box::new(
    client
    .send(presence)
    .map_err(|e| {
    error!("Error on send self-presence: {}", e);
    "Cann't send self-presence".to_owned()
    })
    .and_then(move |client| {
    future::loop_fn((account2.clone(), client), |(account, client)| {
    client
    .into_future()
    .map_err(|(e, _)| {
    error!("Error on reading self-presence: {}", e);
    "Cann't read self-presence".to_owned()
    })
    .and_then(|(event, client)| match event {
    Some(event) => {
    if let tokio_xmpp::Event::Stanza(e) = event {
    info!("Get stanza: {:?}", e);
    if e.name() == "presence"
    && e.attr("from").map_or(false, |f| f == account.jid)
    && e.attr("to").map_or(false, |f| f == account.jid)
    {
    info!("Self presence");
    future::ok(future::Loop::Break(client))
    [3.785]
    [3.2608]
    let presence = stanzas::make_presence(&account);
    info!("Sending presence...");
    Box::new(
    sink.send(presence)
    .map_err(|e| {
    error!("Error on send self-presence: {}", e);
    "Cann't send self-presence".to_owned()
    })
    .join(
    future::loop_fn((account.clone(), stream), |(account, stream)| {
    stream
    .into_future()
    .map_err(|(e, _)| {
    error!("Error on reading self-presence: {}", e);
    "Cann't read self-presence".to_owned()
    })
    .and_then(|(event, stream)| match event {
    Some(event) => {
    if let tokio_xmpp::Event::Stanza(e) = event {
    info!("Get stanza: {:?}", e);
    if e.name() == "presence"
    && e.attr("from")
    .map_or(false, |f| f == account.jid)
    && e.attr("to").map_or(false, |f| f == account.jid)
    {
    info!("Self presence");
    future::ok(future::Loop::Break(stream))
    } else {
    future::ok(future::Loop::Continue((
    account, stream,
    )))
    }
  • replacement in src/xmpp/mod.rs at line 130
    [3.2657][3.7756:7854]()
    future::ok(future::Loop::Continue((account, client)))
    [3.2657]
    [3.2743]
    future::err("Got wrong event".to_owned())
  • edit in src/xmpp/mod.rs at line 132
    [3.2785][3.7855:7982]()
    } else {
    future::err("Got wrong event".to_owned())
  • replacement in src/xmpp/mod.rs at line 133
    [3.2823][3.7983:8564]()
    }
    None => future::err("Got closed stream".to_owned()),
    })
    })
    .map_err(|e| format!("waiting self-presence: {}", e))
    })
    .then(|r| match r {
    Err(e) => {
    error!("Self-presence waiting error: {}", e);
    future::err(account)
    }
    Ok(inner) => future::ok(XmppConnection { account, inner }),
    }),
    )
    [3.2823]
    [3.3783]
    None => future::err("Got closed stream".to_owned()),
    })
    })
    .map_err(|e| format!("waiting self-presence: {}", e)),
    )
    .then(|r| match r {
    Err(e) => {
    error!("Self-presence waiting error: {}", e);
    future::err(account)
    }
    Ok(inner) => future::ok(XmppConnection {
    account,
    inner: Some(inner),
    }),
    }),
    )
    } else {
    warn!("Don't gen connection on self-presence");
    Box::new(future::err(account)) as Box<Future<Item = _, Error = _>>
    }
  • replacement in src/xmpp/mod.rs at line 162
    [3.3891][3.4022:4053]()
    conn: MaybeXmppConnection,
    [3.3891]
    [3.3917]
    conn: XmppConnection,
  • replacement in src/xmpp/mod.rs at line 166
    [3.133][3.4054:4137]()
    fn new(cmd_recv: S, signal: F, conn: MaybeXmppConnection) -> XmppState<F, S> {
    [3.133]
    [3.4038]
    fn new(cmd_recv: S, signal: F, conn: XmppConnection) -> XmppState<F, S> {
  • replacement in src/xmpp/mod.rs at line 181
    [3.4311][3.4301:4342](),[3.4342][3.8565:8651]()
    F: future::Future + Clone + 'static,
    <F as hyper::rt::Future>::Error: std::fmt::Display + Into<failure::Error> + Send,
    [3.4311]
    [3.465]
    F: future::Future<Item = ()> + 'static,
  • replacement in src/xmpp/mod.rs at line 184
    [3.4481][3.4138:4188]()
    let conn = MaybeXmppConnection::new(account);
    [3.4357]
    [3.4526]
    let signal = signal.map_err(|_| format_err!("Wrong shutdown signal"));
    let conn = XmppConnection::new(account);
  • replacement in src/xmpp/mod.rs at line 194
    [3.4692][3.8652:8720]()
    conn.connect(signal.clone())
    .and_then(|conn| {
    [3.4692]
    [3.4761]
    signal
    .select2(conn.connect().and_then(|conn| {
  • replacement in src/xmpp/mod.rs at line 203
    [3.675][3.8721:8802]()
    .map(|(cmd, cmd_recv)| (cmd, cmd_recv, conn))
    })
    [3.675]
    [3.731]
    .map(|f| (f, conn))
    }))
  • replacement in src/xmpp/mod.rs at line 207
    [3.5146][3.8803:9376]()
    Ok((cmd, cmd_recv, conn)) => {
    if let Some(_cmd) = cmd {
    info!("Got cmd");
    // got cmd, continue
    future::ok(future::Loop::Continue(XmppState::new(
    cmd_recv,
    signal,
    conn.into(),
    )))
    } else {
    future::ok(future::Loop::Break((None, conn.into())))
    }
    [3.5146]
    [3.6169]
    Ok(Either::A((_x, b))) => {
    info!("Got signal");
    // got signal, breaks
    Box::new(b.map(|b| future::Loop::Break((Some((b.0).1), b.1))))
    as Box<Future<Item = _, Error = _>>
  • replacement in src/xmpp/mod.rs at line 213
    [3.6191][3.9377:9409]()
    Err(e) => {
    [3.6191]
    [3.6240]
    Ok(Either::B((x, a))) => {
    info!("Got cmd");
    // got cmd, continue
    Box::new(future::ok(future::Loop::Continue(XmppState::new(
    (x.0).1,
    a,
    x.1,
    )))) as Box<Future<Item = _, Error = _>>
    }
    Err(Either::A((e, b))) => {
    // got signal error, breaks
    error!("Signal error: {}", e);
    Box::new(b.map(|b| future::Loop::Break((Some((b.0).1), b.1))))
    as Box<Future<Item = _, Error = _>>
    }
    Err(Either::B((e, _a))) => {
  • replacement in src/xmpp/mod.rs at line 231
    [3.6342][3.9410:9472]()
    future::err(format_err!("Cmd error"))
    [3.6342]
    [3.6572]
    Box::new(future::err(format_err!("Cmd error")))
    as Box<Future<Item = _, Error = _>>
  • replacement in src/xmpp/mod.rs at line 237
    [3.900][3.4420:4494]()
    .and_then(|(opt_cmd_recv, _conn): (Option<S>, MaybeXmppConnection)| {
    [3.900]
    [3.969]
    .and_then(|(opt_cmd_recv, _conn): (Option<S>, XmppConnection)| {
  • replacement in src/xmpp/mod.rs at line 247
    [3.1354][3.9473:9510]()
    Box::new(future::ok(()))
    [3.1354]
    [3.1422]
    Box::new(future::err(format_err!("cmd receiver gone")))
  • replacement in src/main.rs at line 63
    [3.4954][3.4609:4716]()
    .map_err(|e| {
    error!("Cann't get CTRL+C signal: {}", e.0);
    e.0
    })
    [3.4954]
    [3.5020]
    .map_err(|e| error!("Cann't get CTRL+C signal: {}", e.0))
  • replacement in src/main.rs at line 97
    [3.6389][3.4717:4805]()
    let result = ctrt.block_on(xmpp_process(ctrl_c.clone(), recv, config.account));
    [3.6389]
    [3.6536]
    let result = ctrt.block_on(xmpp_process(
    ctrl_c.clone().map(|_| ()),
    recv,
    config.account,
    ));
  • replacement in Cargo.toml at line 13
    [3.6919][3.6919:6935]()
    failure = "0.1"
    [3.6919]
    [3.6935]
    failure = "0.1.4"
  • edit in Cargo.lock at line 1
    [3.7125]
    [3.7125]
    name = "MacTypes-sys"
    version = "1.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
    [[package]]
  • replacement in Cargo.lock at line 13
    [3.7247][3.5680:5753]()
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.7247]
    [3.7320]
    "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 26
    [3.7561][3.5754:5772]()
    version = "0.3.6"
    [3.7561]
    [3.7579]
    version = "0.3.7"
  • replacement in Cargo.lock at line 36
    [3.7789][3.5773:5791]()
    version = "0.4.8"
    [3.7789]
    [3.7807]
    version = "0.4.10"
  • replacement in Cargo.lock at line 47
    [3.8093][3.5792:5864]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8093]
    [3.8165]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 51
    [3.8314]
    [3.8314]
    [[package]]
    name = "autocfg"
    version = "0.1.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • replacement in Cargo.lock at line 62
    [3.8446][3.5865:5946]()
    "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8446]
    [3.8527]
    "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 66
    [3.8757][3.5947:6100]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8757]
    [3.8910]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 73
    [3.9017][3.6101:6119]()
    version = "0.3.9"
    [3.9017]
    [3.9035]
    version = "0.3.13"
  • replacement in Cargo.lock at line 76
    [3.9117][3.6120:6201]()
    "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.9117]
    [3.9198]
    "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 79
    [3.9271][3.6202:6355]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.9271]
    [3.9424]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 86
    [3.9535][3.6356:6375]()
    version = "0.1.24"
    [3.9535]
    [3.9554]
    version = "0.1.28"
  • replacement in Cargo.lock at line 89
    [3.9636][3.6376:6518]()
    "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.9636]
    [3.9778]
    "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 152
    [3.11467][3.6519:6538]()
    version = "1.0.25"
    [3.11467]
    [3.11486]
    version = "1.0.28"
  • replacement in Cargo.lock at line 167
    [3.11948][3.6539:6611]()
    "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.11948]
    [3.12020]
    "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 203
    [3.13233][3.6612:6684]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13233]
    [3.13305]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 211
    [3.13449][3.6685:6757]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13449]
    [3.13521]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 216
    [3.13561][3.6758:6776]()
    version = "0.6.2"
    [3.13561]
    [3.13579]
    version = "0.6.3"
  • replacement in Cargo.lock at line 219
    [3.13661][3.6777:6941]()
    "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13661]
    [3.13825]
    "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 225
    [3.13865][3.6942:6960]()
    version = "0.6.1"
    [3.13865]
    [3.13883]
    version = "0.7.0"
  • replacement in Cargo.lock at line 228
    [3.13965][3.6961:7036]()
    "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13965]
    [3.14040]
    "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 230
    [3.14113][3.7037:7119]()
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.14113]
    [3.14195]
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 238
    [3.14466][3.7120:7138]()
    version = "0.6.1"
    [3.14466]
    [3.14484]
    version = "0.6.3"
  • replacement in Cargo.lock at line 282
    [3.15825][3.7139:7158]()
    version = "0.8.12"
    [3.15825]
    [3.15844]
    version = "0.8.13"
  • replacement in Cargo.lock at line 296
    [3.16352][3.7159:7231]()
    "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16352]
    [3.16424]
    "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 313
    [3.16849][3.7232:7308]()
    "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16849]
    [3.16925]
    "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 318
    [3.16957][3.16957:16975](),[3.16957][3.16957:16975](),[3.16957][3.16957:16975](),[3.16957][3.16957:16975](),[3.16957][3.16957:16975]()
    version = "0.1.3"
    [3.16957]
    [3.16975]
    version = "0.1.4"
  • replacement in Cargo.lock at line 321
    [3.17057][3.7309:7385](),[3.2976][3.17133:17214](),[3.7106][3.17133:17214](),[3.4628][3.17133:17214](),[3.7385][3.17133:17214](),[3.17133][3.17133:17214]()
    "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.17057]
    [3.17214]
    "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 327
    [3.17253][3.17253:17271](),[3.17253][3.17253:17271](),[3.17253][3.17253:17271](),[3.17253][3.17253:17271](),[3.17253][3.17253:17271]()
    version = "0.1.3"
    [3.17253]
    [3.17271]
    version = "0.1.4"
  • replacement in Cargo.lock at line 332
    [3.17505][3.7386:7458]()
    "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.17505]
    [3.17577]
    "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 393
    [3.19271][3.7459:7534]()
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19271]
    [3.19346]
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 426
    [3.20551][3.7535:7607]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20551]
    [3.20623]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 455
    [3.21397][3.7608:7628]()
    version = "0.12.17"
    [3.21397]
    [3.21417]
    version = "0.12.19"
  • replacement in Cargo.lock at line 468
    [3.22231][3.7629:7701]()
    "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.22231]
    [3.22303]
    "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 499
    [3.23535][3.7702:7774]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23535]
    [3.23607]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 525
    [3.24426][3.24426:24581](),[3.24426][3.24426:24581](),[3.24426][3.24426:24581](),[3.24426][3.24426:24581](),[3.24426][3.24426:24581]()
    "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.24426]
    [3.24581]
    "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 556
    [3.25316][3.7775:7794]()
    version = "0.2.44"
    [3.25316]
    [3.25335]
    version = "0.2.45"
  • replacement in Cargo.lock at line 596
    [3.26368][3.7795:7813]()
    version = "0.7.3"
    [3.26368]
    [3.26386]
    version = "0.7.5"
  • replacement in Cargo.lock at line 601
    [3.26618][3.7814:7967]()
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.26618]
    [3.26771]
    "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
    "serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 606
    [3.27015][3.7968:8042]()
    "tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27015]
    [3.27089]
    "tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 616
    [3.27233][3.8043:8061]()
    version = "2.1.1"
    [3.27233]
    [3.27251]
    version = "2.1.2"
  • replacement in Cargo.lock at line 620
    [3.27406][3.8062:8134]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27406]
    [3.27478]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 634
    [3.27805][3.27805:27960](),[3.27805][3.27805:27960](),[3.27805][3.27805:27960](),[3.27805][3.27805:27960](),[3.27805][3.27805:27960]()
    "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27805]
    [3.27960]
    "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 649
    [3.28558][3.8135:8207]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.28558]
    [3.28630]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 663
    [3.29191][3.8208:8280]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29191]
    [3.29263]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 684
    [3.29977][3.8281:8353]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29977]
    [3.30049]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 686
    [3.30119][3.8354:8430]()
    "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30119]
    [3.30195]
    "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 688
    [3.30275][3.8431:8510]()
    "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30275]
    [3.30354]
    "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 691
    [3.30515][3.8511:8600]()
    "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30515]
    [3.30604]
    "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 701
    [3.30882][3.8601:8673]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30882]
    [3.30954]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 733
    [3.31727][3.8674:8692]()
    version = "1.8.0"
    [3.31727]
    [3.31745]
    version = "1.9.0"
  • replacement in Cargo.lock at line 736
    [3.31827][3.8693:8765]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31827]
    [3.31899]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 741
    [3.31931][3.8766:8786]()
    version = "0.10.15"
    [3.31931]
    [3.31951]
    version = "0.10.16"
  • replacement in Cargo.lock at line 748
    [3.32339][3.8787:8938]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.32339]
    [3.32490]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 759
    [3.32645][3.8939:8958]()
    version = "0.9.39"
    [3.32645]
    [3.32664]
    version = "0.9.40"
  • replacement in Cargo.lock at line 762
    [3.32746][3.8959:9101]()
    "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.32746]
    [3.32888]
    "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 790
    [3.33693][3.9102:9174]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33693]
    [3.33765]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 793
    [3.33916][3.9175:9250]()
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33916]
    [3.33991]
    "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 864
    [3.35895][3.9251:9330](),[3.4921][3.35974:36048](),[3.8961][3.35974:36048](),[3.6483][3.35974:36048](),[3.9330][3.35974:36048](),[3.35974][3.35974:36048]()
    "encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.35895]
    [3.36048]
    "encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 867
    [3.36118][3.9331:9404]()
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.36118]
    [3.36191]
    "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 889
    [3.36723][3.9405:9477]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.36723]
    [3.36795]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 900
    [3.37153][3.9478:9550]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.37153]
    [3.37225]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 912
    [3.37648][3.9551:9623]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.37648]
    [3.37720]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 980
    [3.39910][3.9624:9643]()
    version = "0.1.43"
    [3.39910]
    [3.39929]
    version = "0.1.49"
  • replacement in Cargo.lock at line 988
    [3.40130][3.9644:9725]()
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.40130]
    [3.40211]
    "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 993
    [3.40241][3.9726:9744]()
    version = "1.0.6"
    [3.40241]
    [3.40259]
    version = "1.1.0"
  • replacement in Cargo.lock at line 997
    [3.40420][3.9745:9897]()
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    "regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.40420]
    [3.40572]
    "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
    "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1005
    [3.40766][3.9898:9916]()
    version = "0.6.3"
    [3.40766]
    [3.40784]
    version = "0.6.4"
  • replacement in Cargo.lock at line 1030
    [3.41481][3.9917:9935]()
    version = "0.1.9"
    [3.41481]
    [3.41499]
    version = "0.1.11"
  • replacement in Cargo.lock at line 1057
    [3.42197][3.9936:10012]()
    "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42197]
    [3.42273]
    "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1081
    [3.42985][3.10013:10174]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42985]
    [3.43146]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1087
    [3.43193][3.10175:10193]()
    version = "0.2.1"
    [3.43193]
    [3.43211]
    version = "0.2.2"
  • edit in Cargo.lock at line 1090
    [3.43293]
    [3.43293]
    "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1092
    [3.43379][3.10194:10266]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43379]
    [3.43451]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1114
    [3.43981][3.43981:44055](),[3.44055][3.10267:10341]()
    "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    "hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43981]
    [3.44129]
    "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
    "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1118
    [3.44273][3.10342:10495]()
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.44273]
    [3.44426]
    "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
    "serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1123
    [3.44658][3.10496:10573]()
    "tokio-xmpp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.44658]
    [3.44735]
    "tokio-xmpp 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1130
    [3.44917][3.10574:10593]()
    version = "1.0.80"
    [3.44917]
    [3.44936]
    version = "1.0.83"
  • replacement in Cargo.lock at line 1135
    [3.45036][3.10594:10613]()
    version = "1.0.80"
    [3.45036]
    [3.45055]
    version = "1.0.83"
  • replacement in Cargo.lock at line 1140
    [3.45289][3.10614:10686]()
    "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45289]
    [3.45361]
    "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1150
    [3.45638][3.10687:10760]()
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45638]
    [3.45711]
    "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1188
    [3.47047][3.10761:10779]()
    version = "0.1.6"
    [3.47047]
    [3.47065]
    version = "0.1.7"
  • replacement in Cargo.lock at line 1191
    [3.47147][3.10780:10927]()
    "arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.47147]
    [3.47294]
    "arc-swap 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1207
    [3.47552][3.10928:10946]()
    version = "0.6.6"
    [3.47552]
    [3.47570]
    version = "0.6.7"
  • replacement in Cargo.lock at line 1219
    [3.47935][3.10947:11100]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.47935]
    [3.48088]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1243
    [3.48861][3.11101:11174]()
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.48861]
    [3.48934]
    "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1282
    [3.50268][3.11175:11195]()
    version = "0.15.22"
    [3.50268]
    [3.50288]
    version = "0.15.23"
  • replacement in Cargo.lock at line 1305
    [3.51099][3.11196:11268]()
    "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51099]
    [3.51171]
    "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1315
    [3.51455][3.11269:11341]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51455]
    [3.51527]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1317
    [3.51598][3.11342:11423]()
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51598]
    [3.51679]
    "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1324
    [3.51865][3.11424:11442]()
    version = "0.4.0"
    [3.51865]
    [3.51883]
    version = "0.4.1"
  • replacement in Cargo.lock at line 1345
    [3.52519][3.11443:11596]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.52519]
    [3.52672]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1368
    [3.53210][3.11597:11616]()
    version = "0.1.40"
    [3.53210]
    [3.53229]
    version = "0.1.41"
  • replacement in Cargo.lock at line 1371
    [3.53311][3.11617:11770]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53311]
    [3.53464]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1384
    [3.53887][3.11771:11846]()
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53887]
    [3.53962]
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1458
    [3.56756][3.11847:11929]()
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56756]
    [3.56838]
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1463
    [3.57132][3.11930:12005]()
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57132]
    [3.57207]
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1476
    [3.57725][3.12006:12078]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57725]
    [3.57797]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1479
    [3.57942][3.12079:12157]()
    "signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57942]
    [3.58020]
    "signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1504
    [3.59052][3.12158:12322]()
    "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59052]
    [3.59216]
    "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1508
    [3.59361][3.12323:12398]()
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59361]
    [3.59436]
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1518
    [3.59724][3.12399:12481]()
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59724]
    [3.59806]
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1556
    [3.61406][3.12482:12554]()
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.61406]
    [3.61478]
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1567
    [3.61962][3.12555:12573]()
    version = "0.2.0"
    [3.61962]
    [3.61980]
    version = "0.2.1"
  • replacement in Cargo.lock at line 1595
    [3.63560][3.12574:12647]()
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.63560]
    [3.63633]
    "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1610
    [3.64293][3.12648:12723]()
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.64293]
    [3.64368]
    "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1634
    [3.65726][3.12724:12799]()
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.65726]
    [3.65801]
    "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1828
    [3.71090][3.12800:12950]()
    "markup5ever 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
    "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.71090]
    [3.71240]
    "markup5ever 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)",
    "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1850
    [3.72117]
    [3.72117]
    "checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698"
  • replacement in Cargo.lock at line 1853
    [3.72425][3.12951:13102]()
    "checksum arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5c5ed110e2537bdd3f5b9091707a8a5556a72ac49bbd7302ae0b28fdccb3246c"
    [3.72425]
    [3.72576]
    "checksum arc-swap 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1025aeae2b664ca0ea726a89d574fe8f4e77dd712d443236ad1de00379450cf6"
  • replacement in Cargo.lock at line 1855
    [3.72727][3.13103:13254]()
    "checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc"
    [3.72727]
    [3.72878]
    "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
  • edit in Cargo.lock at line 1857
    [3.73026]
    [3.73026]
    "checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727"
  • replacement in Cargo.lock at line 1859
    [3.73178][3.13255:13564]()
    "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a"
    "checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0"
    [3.73178]
    [3.73487]
    "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
    "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
  • replacement in Cargo.lock at line 1869
    [3.74692][3.13565:13711]()
    "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
    [3.74692]
    [3.74838]
    "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
  • replacement in Cargo.lock at line 1877
    [3.75914][3.13712:14186]()
    "checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3"
    "checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8"
    "checksum crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c55913cc2799171a550e307918c0a360e8c16004820291bf3b638969b4a01816"
    [3.75914]
    [3.76388]
    "checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13"
    "checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c"
    "checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a"
  • replacement in Cargo.lock at line 1884
    [3.76999][3.14187:14342]()
    "checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb"
    [3.76999]
    [3.77154]
    "checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be"
  • replacement in Cargo.lock at line 1888
    [3.77616][3.77616:77923](),[3.77616][3.77616:77923](),[3.77616][3.77616:77923](),[3.77616][3.77616:77923](),[3.77616][3.77616:77923]()
    "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7"
    "checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596"
    [3.77616]
    [3.77923]
    "checksum failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e945b93ec214c6e97b520ec6c5d80267fc97af327658ee5b9f35984626e51fbf"
    "checksum failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c395a14ab27b42704e85bf2435c5c51f334ad7a96e16fe23c6e63a1cad6cc12"
  • replacement in Cargo.lock at line 1905
    [3.80218][3.14343:14493]()
    "checksum hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c49a75385d35ff5e9202755f09beb0b878a05c4c363fcc52b23eeb5dcb6782cc"
    [3.80218]
    [3.80368]
    "checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1"
  • replacement in Cargo.lock at line 1916
    [3.81867][3.14494:14642]()
    "checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
    [3.81867]
    [3.82015]
    "checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74"
  • replacement in Cargo.lock at line 1922
    [3.82768][3.14643:14797]()
    "checksum markup5ever 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a87c4100d614080c8ab43334fb028ebe387f273fb61ed4ff0eae9189b94b6be8"
    [3.82768]
    [3.82922]
    "checksum markup5ever 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "897636f9850c3eef4905a5540683ed53dc9393860f0846cab2c2ddf9939862ff"
  • replacement in Cargo.lock at line 1924
    [3.83072][3.14798:14947]()
    "checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
    [3.83072]
    [3.83221]
    "checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9"
  • replacement in Cargo.lock at line 1936
    [3.84890][3.14948:15251]()
    "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
    "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613"
    [3.84890]
    [3.85193]
    "checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
    "checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9"
  • replacement in Cargo.lock at line 1939
    [3.85349][3.15252:15407]()
    "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106"
    [3.85349]
    [3.85504]
    "checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6"
  • replacement in Cargo.lock at line 1965
    [3.89324][3.15408:15565]()
    "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d"
    [3.89324]
    [3.89481]
    "checksum redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)" = "f22c50afdcf3f0a31ebb6b47697f6a7c5e5a24967e842858118bce0615f0afad"
  • replacement in Cargo.lock at line 1967
    [3.89637][3.15566:15869]()
    "checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467"
    "checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e"
    [3.89637]
    [3.89940]
    "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f"
    "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1"
  • replacement in Cargo.lock at line 1971
    [3.90251][3.15870:16027]()
    "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
    [3.90251]
    [3.90408]
    "checksum rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "01b90379b8664dd83460d59bdc5dd1fd3172b8913788db483ed1325171eab2f7"
  • replacement in Cargo.lock at line 1979
    [3.91473][3.16028:16193]()
    "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf"
    [3.91473]
    [3.91638]
    "checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2"
  • replacement in Cargo.lock at line 1982
    [3.91943][3.16194:16499]()
    "checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef"
    "checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c"
    [3.91943]
    [3.92248]
    "checksum serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "157e12af46859e968da75dea9845530e13d03bcab2009a41b9b7bb3cf4eb3ec2"
    "checksum serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "9469829702497daf2daf3c190e130c3fa72f719920f73c86160d43e8f8d76951"
  • replacement in Cargo.lock at line 1988
    [3.92844][3.16500:16654]()
    "checksum signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8941ae94fa73d0f73b422774b3a40a7195cecd88d1c090f4b37ade7dc795ab66"
    [3.92844]
    [3.92998]
    "checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4"
  • replacement in Cargo.lock at line 1991
    [3.93297][3.16655:16806]()
    "checksum smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "622df2d454c29a4d89b30dc3b27b42d7d90d6b9e587dbf8f67652eb7514da484"
    [3.93297]
    [3.93448]
    "checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db"
  • replacement in Cargo.lock at line 2000
    [3.94685][3.16807:16955]()
    "checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7"
    [3.94685]
    [3.94833]
    "checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc"
  • replacement in Cargo.lock at line 2004
    [3.95289][3.16956:17106]()
    "checksum tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9de21546595a0873061940d994bbbc5c35f024ae4fd61ec5c5b159115684f508"
    [3.95289]
    [3.95439]
    "checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b"
  • replacement in Cargo.lock at line 2009
    [3.96048][3.17107:17255]()
    "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b"
    [3.96048]
    [3.96196]
    "checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c"
  • replacement in Cargo.lock at line 2025
    [3.98510][3.17256:17409]()
    "checksum tokio-xmpp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c27385c4781afc851c61ac66d79463c511bf073d3a5d71b8bfd13a816e475989"
    [3.98510]
    [3.98663]
    "checksum tokio-xmpp 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6583920d10a72bd1605adec50f5efb298e0ba5dcad1ff987560675a7280013b"